爲什麼我在這一行中得到一個編譯錯誤String s = data.get(idx);Java泛型列表編譯錯誤
更新:我得到類型不匹配:不能給E轉換爲字符串
public class Parent<E> {
ArrayList<E> data=new ArrayList<E>();
public void add(E d){
data.add(d);
}
public List<E> getData(){
return data;
}
}
public class Child<E> extends Parent<E>{
public void appendData(E newItem){
super.add(newItem);
}
public void displayData(int idx){
List<E> data=this.getData();
**String s=data.get(idx);**//I get compilation error in this line
System.out.println(s);
}
public static void main(String[] args) {
Child<String> c=new Child<String>();
c.appendData("Data1");
c.appendData("Data2");
c.displayData(1);
}
}
解決方案更新的類:
public class Child<S> extends Parent<String>{
public void appendData(String newItem){
super.add(newItem);
}
public void displayData(int idx){
List<String> data=this.getData();
String s=data.get(idx);
System.out.println(s);
}
public static void main(String[] args) {
Child c=new Child();
c.appendData("Data1");
c.appendData("Data2");
c.displayData(1);
}
}
你得到的錯誤是什麼?我假設你想''toString()'這裏'data.get(idx);'。 –
您必須像這樣投射:String s =(String)data.get(idx)否則您必須使用列表而不是列表數據 –
Amith
泛型負責類型轉換的權利? – james007