2017-03-27 5 views
0

おはよう、リピートを使用してコンストラクタを作成するIterableのクラスを探してください。

Javaのリフレクションに関する質問があります。 私は次のコンストラクタを使用して、クラスPacketPlayOutPlayerInfoのコンストラクタインスタンス化します:最初の引数は完全に正常に動作しているが、私は何とか持っている。この方法

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

私が使用してコンストラクタを構築するには

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

をインターフェイスのクラスを取得してコンストラクタが動作するようにするには...

ありがとうございます。

Javaリフレクションメソッド(またはコンストラクタ)を取得するための型引数を持つ

rapt0r一般

+0

'ReflectionHandler'は何ですか? 'getNMSClass()'メソッドの戻り値の型は? –

答えて

0

型の引数は、型消去後PacketPlayOutPlayerInfo.EnumPlayerInfoActionと反復処理可能なので、あなたに答え、あなたの例では、型消去、すなわち後の引数ですコメント "(または行う)"を「いいえ」にする必要があります。一般的なタイプのみが必要です。

パラメータ化された型引数だけが異なるクラスに2つのメソッドを作成することはできません。そのため、上記の方法では有効なJavaメソッドがアクセスできなくなりません。たとえば、次の2つのメソッドを宣言しようとすると、Javaクラスに法定されていません。

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

public int sameName(List<Integer> intList) { 
    return 1; 
} 
関連する問題