碰巧看到代碼用於處理Class的Javac標誌和Eclipse設置。 <GenericType>()方法調用
Collections.<Object>asList(...)
方法調用,但是Eclipse似乎不明白這一點(我的配置),顯示這是編譯錯誤。
我的Eclipse配置是否錯誤?或者這不適用於Sun編譯器(jdk 1.6.013)?我應該檢查/啓用這樣的事情?
碰巧看到代碼用於處理Class的Javac標誌和Eclipse設置。 <GenericType>()方法調用
Collections.<Object>asList(...)
方法調用,但是Eclipse似乎不明白這一點(我的配置),顯示這是編譯錯誤。
我的Eclipse配置是否錯誤?或者這不適用於Sun編譯器(jdk 1.6.013)?我應該檢查/啓用這樣的事情?
如果Collections
的意思是java.util.Collections
,那麼Eclipse是正確的,因爲沒有Collections.asList()
。
我想你的意思是Arrays.asList()
。
在java中類型的方法依賴於某種形式的輸入來確定輸出,所以你可以聲明一個方法
public List<T> asList(T[] myArray) {
...
}
調用該方法時,你只是傳遞在你的類和編譯器知道什麼返回類型是。
String[] myArray = {"asdf", "asdf"};
List<String> result = asList(myArray);
或者,你可以有一個使用這種類型的參數來確定結果
public class Foo<T> {
public void myMethod(T myObject) {
..do something
}
}
如果你創建一個Foo像
Foo<String> foo = new Foo<String>();
你只能用一個調用myMethod的類型類字符串
foo.myMethod("asdf"); //okay
foo.myMethod(new BigInteger(1)); //not okay
你可以用鍵入的對象做更多的事情,但希望這可以解決你所問的問題。
我不知道我是怎麼想的。像一個java寶貝:) Thnx很多! – leonardinius 2010-01-07 21:31:15