2013-03-22 2 views
1

현재 Java 응용 프로그램을 코딩하고 있는데 막혔습니다.java.lang.NoSuchMethodException

package framework.messages.requests; 

import framework.sessions.Session; 

public class Handshake { 
     
    public static void CheckRevision(Session Session) { 
        try { 
            System.out.println("[" + Session.GetID() + "] --> " + Session.GetRequest().ReadUTF()); 
        } 
        catch (Exception ex) { 
             
        } 
    }   
} 

내 수업은 무엇입니까? main(String[] args)에서

내가 사용하는 경우 :

System.out.println(Handshake.class.getMethods()[0].getName()); 

출력이 CheckRevision입니다. 내가 다른 곳에서 사용하는 경우

는하지만 :

this.Packets[6428] = Handshake.class.getMethod("CheckRevision"); 

를 내가 얻을 :

Exception in thread "main" java.lang.NoSuchMethodException: framework.messages.requests.Handshake.CheckRevision() 
    at java.lang.Class.getMethod(Unknown Source) 
    at framework.messages.MessageHandler.AddPackets(MessageHandler.java:18) 
    at framework.Framework.main(Framework.java:34) 

왜 내가 좋은 방법을 얻을하지 않습니다?

+5

사용. –

+0

왜 많은 문제가 있습니까? – user2199080

+0

은 표준 Java 명명 규칙을 따르지 않으므로 – Kevin

답변

9

메서드 이름 만 사용하여 getMethod 메서드를 제공하면 인수가없는 메서드를 찾고 있다고 가정합니다. getMethod 메소드에는 찾고있는 메소드의 매개 변수 클래스에 대한 varargs 인수가 있습니다.

당신은 변수를 대문자 이름을 계속 사용하면 많은 문제가있는거야

Handshake.class.getMethod("CheckRevision", Session.class); 
+0

감사합니다. 그것은 나를 위해 위대한 일했습니다. – user2199080