`
huangzhir
  • 浏览: 124950 次
  • 性别: Icon_minigender_1
  • 来自: 福州
文章分类
社区版块
存档分类
最新评论

泛型方法的使用

阅读更多

我们在一个类里写个泛型方法,你一般会写出如下。

public class Test{
public   List<T> toList(T... args){
            List<T> list= new ArrayList<T>();
          for (T t:args){
            list.add(t);
          }
          return list;
      }
}


这时就编译器就会提示出错。
T cannot be resolved to a type

这里面就是因为方法或类没有申请是泛型的,编译器认不到泛型。
所以,有两种方法证编译器不会报错,

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;
}


0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics