2013-10-25 84 views
2

我想一個方法返回的一些事情,如:的Java:如何使一個方法返回一個類數組

{classA.class,classB.class,classC.class} 

我已經試過:

public Class<?>[] methodeName() 
{ 
    return {classA.class,classB.class,classC.class}; 
} 

但這不會complie ,因爲Java認爲我想創建一個類...我不想使用任何列表...

有什麼建議嗎?

+2

讓我們來看看更大的圖片:爲什麼要返回一個類的數組,爲什麼你不想使用List? – Paul

+0

還有更多的代碼要寫入來創建它們。 – mahescho

+0

不是真的:'Arrays.asList(classA.class,classB.class,classC.class);'最大的問題是,爲什麼你需要一個方法來返回一個類的集合? – Paul

回答

4

您需要正確地創建數組:

return new Class<?>[]{classA.class, classB.class, classC.class}; 

什麼你正在試圖做的只有陣列聲明工程:

Class<?>[] classes = {classA.class, classB.class, classC.class}; // <-- 
return classes; 

數組創建表達式在JLS §15.10詳細。

+0

謝謝,我試過以一種太複雜的方式來做它......我真正需要的僅僅是我的類中的靜態arry,並且沒有方法返回一個,因爲我只想要一個靜態數組類:-) – mahescho

0

你必須告訴該類型是Class

return new Class[] {classA.class, classB.class, classC.class}; 

return {classA.class,classB.class,classC.class};// Compiler is asking what 
       type of array it is ?? I can't store without knowing its type. 
0

試試這個

public Class<?>[] methodeName() 
    { 
     Class<?>[] classes= {classA.class,classB.class,classC.class}; 
     return classes; 
    } 
0

這會工作

Class[] fun(){ 
    Class[] i = {classA.class,classB.class,classC.class}; 
    return i; 
} 
相關問題