2015-07-21 44 views
0

如何使用类对象来分配列表的类型?Java如何使用类对象进行列表初始化

public void assign(Class name){ 
List<name> xlist = new ArrayList(); 
} 
+0

你可以使用'Object',后来将它转换为特定类型的 – depperm

+0

为什么你认为你需要这个? –

+0

@ user3703592'public void assign(T t){List xlist = new ArrayList <>(); }' – CKing

回答

1

这可能会做:

public <T> void assign(Class<T> clazz) { 
    List<T> xlist = new ArrayList<>(); 
    /* 
     more code here... 
    */ 
} 
+0

为什么downvote? –

+0

我相信这是因为'class clazz'在这里毫无意义。 – CKing

+0

@Cing这不是没有意义的。该方法是'void',所以没有参数,没有办法获得'T'。而'xlist'不会在任何地方返回。 –

1

可以使该方法一般:

public <T> void assign(){ 
    List<T> xlist = new ArrayList<T>(); 
} 

或通用类型参数可以在类级别(包含assign方法的类)中声明。

这样你就不需要将Class实例传递给你的方法。

+0

小心。该方法是'空白'。有了这个实现,就没有办法从任何地方获得'T'。 –

+0

@LuiggiMendoza你可以调用,例如'测试。 createList();',假设'test'是包含该方法的类的一个实例。你不需要返回类型。 – Eran

+1

我知道,但AFAIK不是常见的Java代码。试图避免这种编码方式。 –

1

我认为你正在寻找这样的:

public <T> void assign(Class<T> name) { 
    List<T> xlist = new ArrayList<>(); 
}