2017-03-27 1 views
0

좋은 하루,리플렉션을 사용하여 생성자를 생성하는 Iterable 클래스를 찾고 있습니다.

Java에서 리플렉션에 관한 질문이 있습니다. 나는 다음과 같은 생성자를 사용하여 클래스 PacketPlayOutPlayerInfo에 대한 생성자를 실체화 할 :이 방법

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

첫 번째 인수는 완벽하게 잘 작동을 사용하는 생성자를 구축하기 위해

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

을하지만, 어떻게 든이 생성자가 작동하도록 Iterable 인터페이스의 클래스를 얻으려면 ... (또는해야합니까?)

미리 감사하고 즐거운 하루 되십시오.

rapt0r 자바 반사와 일반적으로

+0

'ReflectionHandler'란 무엇입니까? 'getNMSClass()'메소드의 리턴 타입은 무엇입니까? –

답변

0

하는 방법을 검색 (또는 생성자)에 대한 형식 인수는 형식 인수 유형의 삭제 후 PacketPlayOutPlayerInfo.EnumPlayerInfoAction과의 Iterable 있습니다 귀하의 예제에서 유형 삭제 즉 후 인수, 그래서에 대한 대답입니다 당신의 코멘트 "(또는해야합니까?)가 아니오이어야합니다. 제네릭 유형 만 필요합니다.

매개 변수화 된 형식 인수 만 다른 클래스에 두 개의 메서드를 만들 수 없으므로 위의 코드는 유효한 Java 메서드를 액세스 할 수 없게 만듭니다. 예를 들어, 다음 두 메소드를 선언하려고 시도하는 것은 Java 클래스에서는 올바르지 않습니다.

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

public int sameName(List<Integer> intList) { 
    return 1; 
} 
관련 문제