我们在一个类里写个泛型方法,你一般会写出如下。
这时就编译器就会提示出错。
[color=red]T cannot be resolved to a type[/color]
这里面就是因为方法或类没有申请是泛型的,编译器认不到泛型。
所以,有两种方法证编译器不会报错,
1.把类申明为泛型
2.把方法申明为泛型
第一种方法如果这个方法是静态的,也还是会报错的。也还要把在static 方法申明的泛型
public class Test{
public List<T> toList(T... args){
List<T> list= new ArrayList<T>();
for (T t:args){
list.add(t);
}
return list;
}
}
这时就编译器就会提示出错。
[color=red]T cannot be resolved to a type[/color]
这里面就是因为方法或类没有申请是泛型的,编译器认不到泛型。
所以,有两种方法证编译器不会报错,
1.把类申明为泛型
public class Test<T>{
public List<T> toList(T... args){
List<T> list= new ArrayList<T>();
for (T t:args){
list.add(t);
}
return list;
}
}
2.把方法申明为泛型
public class Test{
public <T> List<T> toList(T... args){
List<T> list= new ArrayList<T>();
for (T t:args){
list.add(t);
}
return list;
}
}
第一种方法如果这个方法是静态的,也还是会报错的。也还要把在static 方法申明的泛型
public static <T> List<T> toList(T... args){
List<T> list= new ArrayList<T>();
for (T t:args){
list.add(t);
}
return list;
}