1 回答

TA貢獻1877條經驗 獲得超1個贊
這是一個具體類型的示例,它既有效又開始暗示可能的用例(某種注冊)。該類型既像某種類型的實例,又像該類型所有實例的容器。
public class WeirdEnum extends AbstractList<WeirdEnum> {
private static List<WeirdEnum> underlyingList = new ArrayList<>();
@Override
public WeirdEnum get(int index) { return underlyingList.get(index); }
@Override
public int size() { return underlyingList.size(); }
static <T extends List<T>> List<T> getAList() {
return Collections.emptyList();
}
public WeirdEnum() {
underlyingList.add(this); // Sufficient for our example but not a good idea due to concurrency concerns.
}
static List<WeirdEnum> foo = WeirdEnum.getAList();
}
添加回答
舉報