1

現在Javaアプリケーションをコーディングしていますが、行き詰まりました。

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)

なぜ私は良い方法を手に入れませんか?

4

1 に答える 1

9

メソッド名のみを指定してメソッドを指定すると、引数getMethodのないメソッドを探していると見なされます。このgetMethodメソッドには、探しているメソッドのパラメーターのクラスに対するvarargs引数があります。

使用する

Handshake.class.getMethod("CheckRevision", Session.class);
于 2013-03-22T16:46:04.390 に答える