您现在的位置是:主页 > news > 有了域名 网站建设/如何做好营销
有了域名 网站建设/如何做好营销
admin2025/5/19 7:54:05【news】
简介有了域名 网站建设,如何做好营销,网站设计怎么做毕业论文,江西建设监理协会网站Java 泛型Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。泛型方法你可以写一个泛型方法ÿ…
Java 泛型
Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。
泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。
泛型方法
你可以写一个泛型方法,该方法在调用时可以接收不同类型的参数。根据传递给泛型方法的参数类型,编译器适当地处理每一个方法调用。
下面是定义泛型方法的规则:
所有泛型方法声明都有一个类型参数声明部分(由尖括号分隔),该类型参数声明部分在方法返回类型之前(在下面例子中的)。
每一个类型参数声明部分包含一个或多个类型参数,参数间用逗号隔开。一个泛型参数,也被称为一个类型变量,是用于指定一个泛型类型名称的标识符。
类型参数能被用来声明返回值类型,并且能作为泛型方法得到的实际参数类型的占位符。
泛型方法体的声明和其他方法一样。注意类型参数只能代表引用型类型,不能是原始类型(像int,double,char的等)。
实例:
public classElementDemo {public static voidmain(String[] args) {//运行时类型//使用泛型后,如果实例化是定义的类型与对象传入的类型不一致,就会在编译时期报错。
Test t1 = new Test<>();
t1.add(666);
Test t2 = new Test<>();
t2.add("cjj");
}
}/*** "E" 在这里并没有实际意义,你也可以用别的字母代替
* 它的作用就是在实例化Test类的时候,传入什么类型它就调用什么类型*/
class Test{public voidadd(E e) {
System.out.println(e);
}
}
注意:
泛型的命名只要符合标识符的命名规则即可
习惯上泛型一般只使用一个大写字母进行命名
type
element 元素类型
key
value
result/return
泛型向下兼容
extends 类/接口>
importjava.util.ArrayList;importjava.util.List;public classElementDemo {public static voidmain(String[] args) {//实例化一个Integer类型的数组列表对象,里面存储的数据都是int型数据
List in = new ArrayList<>();
in.add(1);
in.add(2);
in.add(3);
in.add(4);
in.add(5);
in.add(6);//实例化一个Double类型的数组列表对象,里面存储的数据都是Double类型的
List dos = new ArrayList<>();
dos.add(3.6);
dos.add(4.2);
dos.add(6.8);
dos.add(7.7);
dos.add(0.2);//调用方法
print(in);
print(dos);
}//写一个新的方法来遍历元素类型是数字的列表//元素类型是Number或者是其子类//? extends 类/接口 表示传入这个类/接口或者是其子类/子接口对象//所能传入的元素的最大类型限定为Number//规定了泛型的上限
public static void print(List extends Number>list) {//在方法体里面不能再往对象里添加元素,null除外
list.add(null);//打印对象里面的元素
System.out.println(list);
}
}
向上造型规定了泛型的上限,上限的子类都可以向泛型方法传入对象。
泛型向下兼容
extends 类/接口>
importjava.util.ArrayList;importjava.util.List;public classElementDemo1 {public static voidmain(String[] args) {
List str = new ArrayList<>();
str.add(0, "cjj");
print(str);
}//泛型的下限//传入元素类型是String及其父类的列表//? super 类/接口 表示传入这个类/接口及其父类/父接口的对象//表示传入的最小类型是String
public static void print(List super String>list) {//方法体里面可以添加元素
list.add("add");for(Object o : list){
System.out.println(o);
}
}
}
向上造型规定了泛型的下限,下限的fu类都可以向泛型方法传入对象。