public class HelloWorld{
public static void main(String[] args) {
List<? extends Number> callback = new ArrayList<Long>();
new Container<>().test(callback);
}
public static class Container<T extends Number> {
public void test(List<T> some) {
}
}
このコードは
HelloWorld.java:7: error: incompatible types: List<CAP#1> cannot be converted to List<Number>
new Container<>().test(callback);
^
where CAP#1 is a fresh type-variable:
CAP#1 extends Number from capture of ? extends Number
を生産するが、あなたは、このコードが間違って詳細に説明することができます。
I新しいコンテナがコールバックまず
'String'は' final'クラスなので、多少意味がありません。 – Bohemian
@Bohemianそれが数字 – gstackoverflow
であると想像してください。その場合、ジェネリックでは 'Number'を使用する妥当な理由がありますが、' String'ではそれほど多くないので、 'Number'を使用してください。 – Makoto