【发布时间】:2017-03-31 06:09:22
【问题描述】:
我看过某人的代码,但无法理解它是如何工作的。
作为代码将对象列表保存在接口列表中并且可以将其读回。
请解释它是如何工作的。我们可以将对象保存在接口中(对象实现它的地方)。 AFAIK 界面没有成员。请解释此代码如何保存和检索。
ContactBO 实现 BusinessObject
public class ContactBO implements BusinessObject {
private String id, fullName, department, ;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getFullName() {
return fullName;
}
public void setFullName(String fullName) {
this.fullName = fullName;
}
public String getDepartment() {
return department;
}
public void setDepartment(String department) {
this.department = department;
}
@Override
public boolean isSection() {
// TODO Auto-generated method stub
return false;
}
}
BusinessObject 在哪里
public interface BusinessObject {
boolean isSection();
}
联系人代码保存列表
List<ContactBO> contactList = new Gson().fromJson(jsonArray.toString(),
new TypeToken<List<ContactBO>>() {}.getType());
List<BusinessObject> list = new ArrayList<BusinessObject>();
list.addAll(contactList);
使用接口列表读取 ContactBO 列表
List<ContactBO> contactListItems = (List<ContactBO>) (List<?>) result.list;//where list is public List<BusinessObject> list;
【问题讨论】:
-
如果您有
List<T> list,其中T是一个接口,则列表的对象可以是实现该接口的any 类的对象。当您将 放入列表时,对象本身不会改变。它们仍然具有与创建时相同的类。请尝试阅读this one等教程。