`
fantaxy025025
  • 浏览: 1313925 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

Java泛型总结(1)基础篇

 
阅读更多

定义:

* 定义的时候,在某个位置传入形参的暗示<Q, P, ...>,这样在整个作用域内就可以使用Q, P了。

  位置:类是在类名后面,方法是在方法名前面。

* Q, P等表示的是类名,但只是“替换标志“,而不是实际的类。(所以不能new哦)

 

使用:

* 使用的时候必须把Q,P替换为实际的类

 

从这个定义和使用的特点也可以窥探出泛型在编译器和运行期的区别。

 

#泛型类

先看泛型class的例子:

class Box<T> {

    private T data;

    public Box() {

    }

    public Box(T data) {
        this.data = data;
    }

    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }    
}

泛型类要注意:

  1) 在定义一个泛型类的时候,在 “<>”之间定义形式类型参数,例如:“class TestGen<K,V>”,其中“K” , “V”不代表值,而是表示类型。
  2) 实例化泛型对象的时候,一定要在类名后面指定类型参数的值(类型),一共要有两次书写。例如:
TestGen<String,String> t=new TestGen<String,String>(); 
  3) 泛型中<K extends Object>,extends并不代表继承,它是类型范围限制。

  1、泛型的类型参数只能是类类型(包括自定义类),不能是简单类型。

 

  2、同一种泛型可以对应多个版本(因为参数类型是不确定的),不同版本的泛型类实例是不兼容的。

 

  3、泛型的类型参数可以有多个。

 

  4、泛型的参数类型可以使用extends语句,例如<T extends superclass>。习惯上称为“有界类型”。

 

  5、泛型的参数类型还可以是通配符类型。例如Class<?> classType = Class.forName("java.lang.String");

 

#泛型方法

在方法名之前加入尖括号<Q, V>来表示泛型方法中可以使用的类名。

1 根据实参暗示类型参数

2 根据返回值暗示

3 直接传给类型参数

PS: 编译器可以暗示类型参数是什么!即使没有传真实类型参数或实参(编译器根据实参为我们推断类型参数的值。),但是赋值本身存在暗示。

public class TestExternal {
   public static <T> T get(String str){
   return (T)str;
 }
  public static void main(String[] args) {
  int str=TestExternal.get("");
 }

}

 prefer:

http://blog.csdn.net/jiafu1115/article/details/6624254

 

0

0

0

8

0

0

0

 

分享到:
评论

相关推荐

    java泛型指南 经典

    ### Java泛型指南经典知识点解析 #### 一、引言 Java 1.5 版本引入了一系列重要的语言特性,其中“泛型”是其中一项关键特性。泛型的引入极大地提高了 Java 语言的类型安全性和代码重用性。本文档旨在深入探讨 ...

    Java基础篇:泛型.pdf

    Java泛型的一个重要应用是在集合框架中。在JDK 1.5之前,Java集合类框架使用Object作为元素类型,这意味着集合可以存储任何类型的对象。然而,这种设计导致在从集合中获取元素时必须进行类型转换,这个过程是繁琐且...

    java语言程序设计基础篇第十版第十三章练习标准答案.pdf

    本资源提供了 Java 语言程序设计基础篇第十三章的练习标准答案,涵盖了面向对象编程、集合框架、泛型、方法重写和数组操作等多个知识点。这将有助于读者更好地理解 Java 语言的基本概念和编程技术。

    java泛型深入[参照].pdf

    本篇文章将深入探讨Java泛型的各个方面。 首先,让我们来看看泛型带来的好处。在Java中,泛型的主要优点在于编译器可以在编译时进行类型检查,避免了运行时可能发生的ClassCastException异常。当不使用泛型时,如...

    Java语言程序设计 基础篇 第八版 带目录

    根据提供的信息,“Java语言程序设计 基础篇 第八版 带目录”这本书主要针对初学者介绍了Java编程的基础知识。尽管提供的具体内容部分只包含了下载链接,我们仍然可以根据书名、描述以及标签来推断出书中可能涵盖的...

    Java语言程序设计 基础篇 第10版 梁勇 答案

    《Java语言程序设计 基础篇 第10版 梁勇 答案》是一本针对初学者和进阶者的重要参考资料,由知名Java教育专家梁勇编写。本书全面覆盖了Java语言的基础概念、语法和编程技巧,旨在帮助读者深入理解并掌握Java编程的...

    Java语言程序设计基础篇课件(含代码)

    本课件《Java语言程序设计基础篇》旨在为初学者提供一个系统、全面的学习平台,帮助他们掌握Java编程的基础知识和技能。 课程内容可能涵盖以下几个核心知识点: 1. **Java概述**:介绍Java的历史、特点、应用领域...

    Java基础入门四泛型反射注解.pdf

    Java基础入门系列是帮助初学者掌握Java编程的重要学习材料,本篇主要介绍了泛型、反射和注解这三大高级特性。 泛型是Java SE 5版本引入的一个新特性,它的主要目的是允许在使用类、接口和方法时能够引用到任何类型...

    Java语言程序设计(基础篇+进阶篇)第六版 答案(不含编程题)

    《Java语言程序设计(基础篇+进阶篇)第六版》是Java学习的重要参考资料,尤其对于初学者和希望深入理解Java编程概念的人来说,这是一本不可多得的教材。本书分为基础篇和进阶篇,涵盖了Java编程的各个方面,旨在帮助...

    java程序设计(基础篇)答案

    Java程序设计是软件开发领域中的核心技能之一,尤其对于初学者而言,掌握基础篇和进阶篇的内容至关重要。本资源提供了“Java语言程序设计 第10版”的基础篇和进阶篇答案,帮助学习者深化对Java编程的理解,解决学习...

    java语言程序设计基础篇李娜译答案

    Java语言程序设计基础篇是学习Java编程的入门教材,由李娜翻译,主要涵盖了Java语言的基础概念、语法和编程实践。这份压缩包包含了书中的所有章节课后习题及编程题偶数题的答案,对于初学者来说是一份非常有价值的...

    Java语言程序设计基础篇第十版源码.rar

    《Java语言程序设计基础篇第十版》是一本深入浅出介绍Java编程的教材,源码rar文件包含了书中各个章节的示例代码,是学习和理解Java编程的重要资源。本压缩包中的源码覆盖了Java语言的基础语法、面向对象特性、异常...

    Java语言程序设计 基础篇 原书第10版 ,梁勇著 ,P656

    《Java语言程序设计 基础篇 原书第10版》是梁勇编著的一本关于Java编程的经典教材,旨在为初学者提供全面而深入的Java基础知识。本书覆盖了从Java语言的基本语法到面向对象编程的核心概念,再到实际编程中的常见问题...

    java程序语言设计 梁勇 第十版(基础篇+进阶篇) 课后习题答案

    Java程序语言设计是Java开发者学习过程中的一本经典教材,梁勇教授的第十版结合了基础篇与进阶篇,深入浅出地讲解了Java编程的核心概念和技术。此压缩包包含了该书的课后习题答案,对于正在学习或已经学过这本书的...

    (官方)Java语言程序设计(原书第8版)基础篇和进阶篇复习题和编程题答案

    1. **基础篇复习题**:这部分涵盖了Java语言的基本语法、数据类型、控制结构(如if语句、for循环和while循环)、方法定义与调用、数组以及类与对象的概念。复习题的答案将引导你理解和应用这些基本概念,确保对Java...

    Java语言程序设计第10版(基础篇+进阶篇)-程序清单 (源代码)

    《Java语言程序设计》是Y.Daniel Liang与梁勇合作编写的一本经典教材,分为基础篇和进阶篇,涵盖了Java编程的各个方面。这个压缩包包含的是书中的所有源代码,供读者学习和实践使用。以下是根据这些信息提炼出的一些...

    JAVA 核心技术基础篇1

    全书共14章,包括Java基本的程序结构、对象与类、继承、接口与内部类、图形程序设计、事件处理、Swing用户界面组件、部署应用程序和Applet、异常日志断言和调试、泛型程序设计、集合以及多线程等内容。. 全书对Java...

    Java语言程序设计基础篇(Y.Daniel Liang 著)课后编程答案(全)

    Java语言程序设计基础篇是Y.Daniel Liang教授的一本经典教材,主要针对初学者,旨在教授Java编程的基础知识。本书涵盖了从语法基础到面向对象编程的重要概念,为读者提供了全面的学习路径。课后编程答案集是学习过程...

    java语言程序设计基础篇英文8版课后习题答案

    Java语言程序设计基础篇是学习Java编程的入门教材,第8版提供了丰富的学习材料和练习题,旨在帮助初学者掌握编程基础。这份压缩包包含了该书的英文版部分课后习题答案,特别是编程题的解答,对于自我检验和深入理解...

Global site tag (gtag.js) - Google Analytics