public class test{
 
 private String classname; private Collection collection; public void test(){
   if(collection!=null&&collection.getClass.equals(java.util.Collection<classname>)){
    ...//operations
   }
 }}这个泛型的参数如何用变量的值?

解决方案 »

  1.   

    泛型写的是类型,不是值。你要写就是java.util.Collection<String> 这里String可以是其他类型。 
      

  2.   

    java.util.Collection <"aaa">依然有编译错误。。看样子这个泛型不够灵活
      

  3.   

    写的是你的类名,你的“aaa”是字符串。
      

  4.   

    泛型的<>中写的是类的名字,不是具体值。
      

  5.   

    就是阿。现在我这个类的名字在我的变量classname的值里。。
    很怀念javascript的eval。
      

  6.   

    那个泛型类型中的类名你是得不到的,编译后就没有了。所以你没办法用getClass之类的动态信息去分析
      

  7.   

    这个不是传参数,不能用你的classname参数。是写死的类名,为了你的编译器可以检查及自动转换你的集合中的元素。你要用不是写死的就不要用<>泛型,直接用Collection。取值后强制转换。Collection中放的是Object对象。要自己转换。写了泛型就不用自己转换,系统根据你写的泛型自动转。