泛型方法
泛型方法
- 泛型方法不能用静态类调用
- 构造器不能带有泛型方法
- 不同的泛型不能互相赋值
package com.Collection;
public class Demo01<E> {
int a;
String n ;
public void ListDemo(E n){};
public void ListDemo1(E n[]){};
public static void main(String[] args) {
//实例化的时候指定泛型类型
Demo01 <Integer>demo10 =new Demo01<Integer>();
demo10.ListDemo1(new Integer[] {1,2,3,45,6});
}
}
//当父类指定泛型类型;则子类必须用此类型
//调用不指定泛型的父类;子类在主方法实例化的时候定义泛型类型
class Demo02<E> extends Demo01<E>{
public static void main(String[] args) {
Demo02 <String>demo02 =new Demo02<>();
demo02.a=5;
demo02.ListDemo("265");
}
}
具体的泛型方法:
package com.Collection;
public class Method {
public static class Demo01<E>{
//这个不是泛型方法
public void cee(E n){
};
//这个是泛型方法
public <T> void ced(T s){
};
}
}
class MethodDmeo{
public static void main(String[] args) {
//这里不是直接调用的类;而是调用的类下的一个方法;进行的实例化;则必须都为经静态
Method.Demo01 <String>demo01 = new Method.Demo01<>();
//由于这个没有指定<T>类型;默认为object
demo01.ced(857);
demo01.cee("895");
}
}
特殊的比较:
package com.Collection;
import java.util.ArrayList;
import java.util.List;
public class Compare {
public static void main(String[] args) {
Object obj =new Object();
String str =new String();
obj =str;//多态
Object[] objList =new Object[10];
String[] strList =new String[10];
objList =strList;//多态
List <String>list =new ArrayList();
List<Object> objs = new ArrayList<>();
objs =list;//这里不成立
}
}

浙公网安备 33010602011771号