基本上我正在尝试做的是有一个支持列表,它可以从其他“子列表”中获得反映给它的所有更改。更详细一点,这就是我要做的事情:
public abstract class User
{
protected List<UserHandler> defaultHandlers
}
public class Customer extends User
{
// All changes made to this list should the one from the parent class
private List<CustomerHandler> userHandlers
}
public class Admin extends User
{
// Similarily with this one
private List<AdminHandler> adminHandlers
}
public interface UserHandler
public interface CustomerHandler extends UserHandler
public interface AdminHandler extends UserHandler
这样的功能是否可能?
答案 0 :(得分:1)
显而易见的答案是在defaultHandlers
和Customer
中使用Admin
,因为它已设置为protected
。
但是,如果您要查找将修改defaultHandlers
的{{1}}子列表,则可以使用defaultHandlers
;来自documentation:
List#subList
返回指定fromIndex(包含)和toIndex(独占)之间此列表部分的视图。 (如果fromIndex和toIndex相等,则返回的列表为空。)返回的列表由此列表支持,因此返回列表中的非结构更改将反映在此列表中,反之亦然。返回的列表支持此列表支持的所有可选列表操作。
请记住,如果您的程序是多线程的,则需要处理同步。