2012-10-06 51 views
0

您好我有對象的列表的方法,如何訪問一個對象,它是在一個列表

myclass obj1 = new myclass(); 
myclass obj2 = new myclass(); 
obj1.name("hello"); 
obj2.name("bye"); 
List objectsList = new ArrayList 
objectsList.add(obj1); 
objectsList.add(obj2); 

我如何可以訪問列表中的每個對象的方法? 我試過以下,但我沒有訪問方法。

Object obj = objectsList.get(1); 
obj. <<< no access to methods   
+0

去哪兒'obj1,obj2'? – Bajrang

回答

0

您需要將它們轉換爲myclass。

((myclass) obj).methodOfMyClass(); 
+0

您*可以*做到這一點 - 但首先使用泛型集合要清潔得多。 –

+0

我同意你的意見。 – Seitaridis

9

你給甚至不會編譯代碼...但如果你使用泛型,那麼你就強類型元素結束時,您將獲取:

// TODO: Use a better class name which obeys Java naming conventions 
// Ditto name => setName 
List<myclass> list = new ArrayList<myclass>(); 
list.add(obj1); 
list.add(obj2); 

... 
myclass obj = list.get(1); 
System.out.println(obj1.getName()); 
+0

我也一樣,重點是我必須將Object更改爲myclass謝謝。 –

+3

@EmeEmertana:你必須做的比這更多 - 你必須使用泛型,或添加一個演員。沒有這個,'myclass obj = list.get(1);'不會編譯。 –

0

的一種方式,因爲你編碼它的方式是將對象轉換爲myclass,因爲Object類沒有定義這樣的方法。

相關問題