Java 创建通用列表
如何在Java中创建genric列表?我还可以将Java 创建通用列表,java,generics,type-erasure,Java,Generics,Type Erasure,如何在Java中创建genric列表?我还可以将Class实例传递给该方法 像这样: public static <T> List<T> createList(Class<T> clazz) { List<T> list = new ArrayList<T>(); list.add(clazz.newInstance()); return list; } 公共静态列表createList(类clazz){
Class
实例传递给该方法
像这样:
public static <T> List<T> createList(Class<T> clazz) {
List<T> list = new ArrayList<T>();
list.add(clazz.newInstance());
return list;
}
公共静态列表createList(类clazz){
列表=新的ArrayList();
add(clazz.newInstance());
退货清单;
}
我不明白你为什么想要一个方法。您只需执行新建ArrayList()
,新建ArrayList()
等操作即可
如果您想将其作为方法编写,请执行以下操作
public static <T> List<T> createList() {
return new ArrayList<T>();
}
公共静态列表createList(){
返回新的ArrayList();
}
编译器将推断返回类型
列表
我不明白你为什么想要一个方法。您只需执行新建ArrayList()
,新建ArrayList()
等操作即可
如果您想将其作为方法编写,请执行以下操作
public static <T> List<T> createList() {
return new ArrayList<T>();
}
公共静态列表createList(){
返回新的ArrayList();
}
编译器将推断返回类型
列表
如果要将实例传递给列表,则表示可以尝试此操作
public class info {
private int Id;
public void setId(int i_Id) {
this.Id = i_Id;
}
public int getId() {
return this.Id;
}
}
class two{
private List<info> userinfolist;
userinfolist= new ArrayList<info>();
//now you can add a data by creating object to that class
info objinfo= new info();
objinfo.setId(10);
userinfolist.add(objinfo); .//add that object to your list
}
公共类信息{
私有int-Id;
公共无效设置Id(内部Id){
this.Id=i_Id;
}
公共int getId(){
返回此.Id;
}
}
二班{
私有列表用户信息列表;
userinfolist=newarraylist();
//现在,您可以通过向该类创建对象来添加数据
info objinfo=新信息();
objinfo.setId(10);
userinfolist.add(objinfo);.//将该对象添加到列表中
}
如果要将实例传递给列表,则表示可以尝试此操作
public class info {
private int Id;
public void setId(int i_Id) {
this.Id = i_Id;
}
public int getId() {
return this.Id;
}
}
class two{
private List<info> userinfolist;
userinfolist= new ArrayList<info>();
//now you can add a data by creating object to that class
info objinfo= new info();
objinfo.setId(10);
userinfolist.add(objinfo); .//add that object to your list
}
公共类信息{
私有int-Id;
公共无效设置Id(内部Id){
this.Id=i_Id;
}
公共int getId(){
返回此.Id;
}
}
二班{
私有列表用户信息列表;
userinfolist=newarraylist();
//现在,您可以通过向该类创建对象来添加数据
info objinfo=新信息();
objinfo.setId(10);
userinfolist.add(objinfo);.//将该对象添加到列表中
}
列表已经是通用的。可以将任何类型的对象传递给列表。是否创建自己的泛型类?这很容易搜索。您已经这样做了。@R.J由于类型擦除,我想我无法创建新的ArrayList。那么您需要什么?@R.J换句话说:我知道我不能用Java泛型这样做:new t()所以我想我也不能这样做:newarraylist
List已经是通用的了。可以将任何类型的对象传递给列表。是否创建自己的泛型类?这很容易搜索。您已经这样做了。@R.J由于类型擦除,我想我无法创建新的ArrayList。那么您需要什么?@R.J换句话说:我知道我不能用Java泛型这样做:new t()
所以我想我也不能这样做:新建ArrayList
但它能工作吗?我想我无法创建新的ArrayList
。但是,即使我能做到,根据这个答案,我也不能向它添加元素。如果在方法之外进行,则需要使用正确的类型参数(newarraylist()
,等等)。在该方法中,它是一个不同的故事,因为T
是一个类型参数。该方法创建某种类型的泛型列表。实际类型无关紧要(因为类型擦除:ArrayList
的运行时类型与ArrayList
的运行时类型相同)。您不能做的是将内容添加到列表
,但在本例中我们不会这样做:List List List=createList()
,但它能工作吗?我想我无法创建新的ArrayList
。但是,即使我能做到,根据这个答案,我也不能向它添加元素。如果在方法之外进行,则需要使用正确的类型参数(newarraylist()
,等等)。在该方法中,它是一个不同的故事,因为T
是一个类型参数。该方法创建某种类型的泛型列表。实际类型无关紧要(因为类型擦除:ArrayList
的运行时类型与ArrayList
的运行时类型相同)。您不能将内容添加到列表中,但在本例中我们不会这样做:List List=createList()