我完全相信這是代碼片段有錯誤。從頭開始編程的Java的Java說沒有錯誤。這是代碼:什麼是錯誤Java ArrayLists
ArrayList temp = new ArrayList();
temp.add("35");
temp.add(35);
第2行沒有錯誤嗎? arrayList不能有一個字符串,並且同一個ArrayList中的整數是正確的?如果我錯了,請糾正我,明天我會對此進行測試。謝謝大家!
我完全相信這是代碼片段有錯誤。從頭開始編程的Java的Java說沒有錯誤。這是代碼:什麼是錯誤Java ArrayLists
ArrayList temp = new ArrayList();
temp.add("35");
temp.add(35);
第2行沒有錯誤嗎? arrayList不能有一個字符串,並且同一個ArrayList中的整數是正確的?如果我錯了,請糾正我,明天我會對此進行測試。謝謝大家!
是的,它是正確的。
由於您尚未在ArrayList
中聲明任何類型,因此它允許所有對象。
現在你的ArrayList是相同
ArrayList<Object> temp = new ArrayList<Object>();
,看看下面的例子
ArrayList<String> temp = new ArrayList<String>();
temp.add("35");
temp.add(35); //compiler error, Only Strings please
見下面的例子
ArrayList<Integer> temp = new ArrayList<Integer>();
temp.add("35");//compiler error, Only Integers please
temp.add(35);
而且它的高度器重使用原始類型,總是喜歡與特定類型一起使用。
現在在第一種情況下ArrayList temp = new ArrayList();
,當你返回它時返回一個未知類型的Object。這可能是一個整數或字符串,你需要手動檢查你List
非常感謝你!非常感謝您爲我清理了很多。 – user2673161
它是正確的,因爲它的原始類型意味着你可以添加任何object.You可以添加任何擴展Object
恢復了過來之後類 你可以寫temp.add(x);
其中x可以是任何東西字符串,整型,長日期任何延伸Object
例如
String x="";
int x1=1;
Date df=new Date();
temp.add(x);// will work
temp.add(x1);//will work
temp.add(df);// will work
它是正確的。既然你沒有聲明任何類型的列表,它將所有元素視爲Object
類。您的定義是
ArrayList<Object> arr=new ArrayList<>();
用於編譯器。在這種情況下,35將裝箱到Integer
,「35」將是String
。 Integer
和String
都是Object
的子類,並且不會有任何編譯時錯誤。
ArrayList temp = new ArrayList();
這裏沒有問題。這是一個ArrayList
,它將接受任何數據類型,因爲它沒有定義特定的數據類型(原始ArrayList)。
是你的數組列表可以同時包含字符串和整數。 但數組列表僅存儲對象的字符串和Integer對象它不支持INT基本數據類型只有ArrayList的
ArrayList<Object> arr=new ArrayList<>();
String s="35";
Integer in=35;
arr.add(in);
arr.add(s);`
內對象在java中有一名爲Generics的東西,它允許程序員在抽象類。
Arraylist代碼在內部使用它。所以當你沒有定義任何通用類型時,默認類型是Object
類的類型。
並且因爲String
以及Integer
都是Object類的子類,所以根據OOP允許該操作。
如果你有這方面的測試..首先閱讀[泛型在Java](http://docs.oracle.com/javase/tutorial/extra/generics/)..你會得到一個更清晰的圖片.. – Abhinav