test=new Test">

JAVA泛型类的初始化问题

代码工坊 论文问答 1

有以下类定义:

public class Test> {
public Test(){
System.out.println("success");
}
}

请问各位如何创建实例? PS: Test> test=new Test>(); 是不行的 。

回复

共2条回复 我来回复
  • 代码港湾
    这个人很懒,什么都没有留下~
    评论
     /* package whatever; // don't place package name! */
    
    import java.util.*;
    import java.lang.*;
    import java.io.*;
    
    class Test<U,V extends Test<U,V>> {
        public Test(){
            System.out.println("success");
        }
    }
    
    class A extends Test<String, A>
    {
    
    }
    
    /* Name of the class has to be "Main" only if the class is public. */
    class Ideone
    {
        public static void main (String[] args) throws java.lang.Exception
        {
            // your code goes here
            Test<String, A> t = new Test<String, A>();
        }
    }
    
    0条评论
  • 毕设项目助手
    这个人很懒,什么都没有留下~
    评论

    java中没法得到泛型参数化类型,因为在编译期没法确定泛型参数化类型,也就找不到对应的类字节码文件,自然就不行了 。 泛型反射的关键是获取ParameterizedType,再调用它的getActualTypeArguments()方法获得实际绑定的类型。但注意public class BookManager是不能被反射的,因为擦拭法的缘故。只有在Superclass 或者成员变量(Field.getGenericType())等有函数返回ParameterizedType的时候才能成功反射 。

    0条评论

发表回复

登录后才能评论