このコードがコンパイルされない理由を教えてください。
特定の型 T を提供せずにジェネリック クラスを使用していても、コンパイル時に ArrayList が文字列を保持していることを認識できるはずです。
public class Test {
public static void main(String[] args){
Container container = new Container();
container.strings.add("test");
String s1 = container.strings.get(0); // does not compile
ArrayList<String> local = container.strings;
String s2 = local.get(0); // does compile
}
static class Container <T>{
ArrayList<String> strings = new ArrayList<String>();
}
}