java泛型

java泛型(Generices Type)

   --->概念:泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是安全简单。

 --->优点:(1)在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常【ClassCastException】,这是一个安全隐患。

      (2)泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动隐式的,提高代码的重用率。
java泛型
Map m = new HashMap();
m.put("key", "blarg");
String s = (String) m.get("key");//需要进行显示的强制类型转换
View Cod
 泛型字母
T  type表示类型
K V 分别代表键值对中的key,value
E 代表Element
?不确定类型
【泛型类】
java泛型
 1 /**
 2  * 
 3 ----->声明类时使用泛型
 4 ----->泛型不只能使用引用类型
 5 ----->泛型声明时不能使用在静态属性,静态方法上
 6  */
 7 public class Student<T1, T2> {
 8     private T1 javase;
 9     private T2 oracle;
10     //private static T2 add;会报错的
11     public Student() {
12         super();
13     }
14     public Student(T1 javase, T2 oracle) {
15         super();
16         this.javase = javase;
17         this.oracle = oracle;
18     }
19 
20     public T1 getJavase() {
21         return javase;
22     }
23 
24     public void setJavase(T1 javase) {
25         this.javase = javase;
26     }
27 
28     public T2 getOracle() {
29         return oracle;
30     }
31 
32     public void setOracle(T2 oracle) {
33         this.oracle = oracle;
34     }
35 
36 }
View Code

【泛型接口】

java泛型
1 /**
2  *(接口中只能定义静态全局变量,抽象方法)
3    接口中泛型字母只能使用在方法中,不能使用在全局常量中
4 
5  */
6 public interface Person<T,T2> {
7     public abstract void Address(T a);
8     public  abstract T2 queryAll();
9 }
View Code

【泛型方法】

java泛型
 1 /**
 2      * 
 3     *格式----->修饰符 泛型字母 返回值类型 方法名(泛型字母 形参)
 4     *(只能访问对象信息,不能修改对象信息)
 5     ---><T>用在返回值类型
 6     --->也可以用在形参列表上
 7      */
 8     public  <T> void queryList(T a){
 9       
10         System.out.println("Student.queryList()"+a);
11     }
View Code

 

 

java泛型,布布扣,bubuko.com

java泛型

上一篇:和我一起学python,控制语句 (life is short ,we need python)


下一篇:C++读取特定路劲下文件目录及文件名称