2017-03-22 43 views
0

我想創建一個可以不帶任何參數進行一類的列表,並有採取任何對象的列表的方法和行爲方式是這樣的:與方法的Java類,它接受任何對象

List<String> list1 = Arrays.asList(new String [] {"a","b"}); 
List<String> result1 = myClass.myMethod(list1); 

List<Integer> list2 = Arrays.asList(new String [] {1,2}); 
List<Integer> result1 = myClass.myMethod(list2); 

以下是我簡要閱讀Java泛型後的嘗試:

public class myClass<T> { 

public List<T> myMethod(List<T> input) { 
    ... 
    return input; // just an example 
} 

爲什麼不能正常工作?

+0

您看到了什麼錯誤? – pgreen2

+0

無法對非靜態方法進行靜態引用...,嘗試使該方法靜態但會導致更多錯誤 –

+0

啊,我想念你的例子。有兩件事,班級名稱以大寫('MyClass')開頭,其次,您需要爲該方法添加「靜態」修飾符。看到我的答案下面和一個例子。 – pgreen2

回答

0

我認爲問題是你把參數放在類上,但真的只需要在方法上。請嘗試:

public class MyClass { 

    // this is a parameterized method 
    public static <T> List<T> myMethod(List<T> input) { 
    ... 
    return input; // just an example 
    } 
} 
+0

好點,但仍然有錯誤「無法對靜態方法進行靜態引用...」 –

+0

您可能在我的第二次編輯之前看到過我的示例。該方法應該有'static'修飾符。解決它的 – pgreen2

+1

,非常感謝。一旦定時器結束,我會接受答案 –

相關問題