【发布时间】:2011-02-20 17:45:54
【问题描述】:
在将类传递给 java 函数时是否可以使用泛型?
我希望做这样的事情:
public static class DoStuff
{
public <T extends Class<List>> void doStuffToList(T className)
{
System.out.println(className);
}
public void test()
{
doStuffToList(List.class); // compiles
doStuffToList(ArrayList.class); // compiler error (undesired behaviour)
doStuffToList(Integer.class); // compiler error (desired behaviour)
}
}
理想情况下,List.class 和 ArrayList.class 行可以正常工作,但 Integer.class 行会导致编译错误。我可以使用Class 作为我的类型而不是T extends Class<List>,但是我不会捕捉到上面的 Integer.class 情况。
【问题讨论】: