[英]How to add generic object to list in java?
如何在Java中將通用對象添加到列表中?
目前,我有兩個類執行相同的功能,並希望將它們集成在一起
public class MyClass1 {
private List<Object1> myList = new ArrayList<>();
public void addList(Object1 o) {
myList.add(o);
}
}
public class MyClass2 {
private List<Object2> myList = new ArrayList<>();
public void addList(Object2 o) {
myList.add(o);
}
}
就像是
public class MyClass {
private List<Object> myList = new ArrayList<>();
public void addList(Object o) {
myList.add(o);
}
}
您可以使自己的類通用:
public class MyClass<T> {
private List<T> myList = new ArrayList<>();
public void addList(T o) {
myList.add(o);
}
}
您可以使Object1
和Object2
兩個類Object1
實現相同的接口'ObjInterface'
public class MyClass {
private List<ObjInterface> myList = new ArrayList<>();
public void addList(ObjInterface o) {
myList.add(o);
}
}
如果您希望該類僅包含Object1或Object2,並且不包含其他任何內容,則可以結合使用其他兩個答案:
interface ObjInterface {
// may be empty
}
public class MyClass<T extends ObjInterface> {
private List<T> myList = new ArrayList<>();
public void addList(T o) {
myList.add(o);
}
}
MyClass<Object1> object1only = new MyClass<>();
MyClass<Object2> object2only = new MyClass<>();
並將implements ObjInterface
添加到Object1和Object2的定義。
如果將這兩個類ObjInterface
方法添加到ObjInterface
,則可以在MyClass
的T
對象上調用這些方法,因為可以ObjInterface
它們是ObjInterface
的子類。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.