2017-03-27 62 views
0

美好的一天,尋找一個Iterable的類來創建一個使用反射的構造函數

我有一個關於Java中反射的問題。 我想用下面的構造方法實例化一個類PacketPlayOutPlayerInfo構造:

public PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction paramEnumPlayerInfoAction, Iterable<EntityPlayer> paramIterable){ 
    [...] 
} 

要構建我用這個方法

Constructor<?> packetPlayerInfoConstructor = ReflectionHandler.getNMSClass("PacketPlayOutPlayerInfo").getConstructor(
           ReflectionHandler.getNMSClass("PacketPlayOutPlayerInfo$EnumPlayerInfoAction"), _____); 

第一個參數是工作完全正常的構造,但我無論如何都以獲得接口Iterable的類來獲取構造函數的工作...(或我?)

在此先感謝,並有美好的一天,

rapt0r

+0

什麼是ReflectionHandler? getNMSClass()方法的返回類型是什麼? –

回答

0

一般用Java反射用於檢索的方法(或構造函數)的類型參數的數據類型擦除後,即參數在您的示例類型參數是PacketPlayOutPlayerInfo.EnumPlayerInfoAction和可迭代類型擦除後,所以回答你評論「(或我)」應該是否,你應該只需要泛型類型。

您不能創建在一個類中兩個方法,只有他們的參數類型參數不同,因此上面並沒有做出任何有效的Java方法無法訪問。例如,試圖聲明以下兩種方法在Java類中是不合法的:

public int sameName(List<String> stringList) { 
    return 1; 
} 

public int sameName(List<Integer> intList) { 
    return 1; 
} 
相關問題