【发布时间】:2017-02-03 07:15:23
【问题描述】:
可以在这个 s1 中添加除 null 之外的任何内容吗? (并安全地分配给 temp )
是
<S extends ArrayList<S>>
语言中的有用构造还是只是语法副作用?我将 S 解释为只能包含 ArrayLists 的 ArrayLists 的 ArrayLists 的 ArrayLists 等对象的 ArrayList 是否正确?
public class Foo{
public static <S extends ArrayList<S>> void f1() {
S s1 = (S) new ArrayList<S>();
// s1.add( ???? ); // can anything be added here other than null?
S temp = s1.get(0);
}
}
【问题讨论】:
-
XY Problem 或许?
-
你告诉 Java S 是 ArrayList 的子类:
<S extends ArrayList<S>> -
我不是在问我知道答案的事情,如果这就是你的意思。 Null 是我迄今为止发现的所有工作。我知道我告诉 Java S 是什么。我的意思是谁在技术上提供参数,因为 main 没有被显式调用。
-
但是你想做什么?您是出于学术兴趣而提问,还是您正在努力解决问题?
-
它是作为一个单独问题的一部分被发现的,现在只是好奇。现在它不是我要解决的问题。循环引用是真实的,是这里最有趣的部分。我完全不明白java是如何对待它的。
标签: java generics generic-method