我目前正在编写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) {
}
}
}
Run Code Online (Sandbox Code Playgroud)
我班上的是什么.
在main(String[] args)如果我使用:
System.out.println(Handshake.class.getMethods()[0].getName());
Run Code Online (Sandbox Code Playgroud)
输出是CheckRevision.
但如果我在其他地方使用:
this.Packets[6428] = Handshake.class.getMethod("CheckRevision");
Run Code Online (Sandbox Code Playgroud)
我明白了:
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)
Run Code Online (Sandbox Code Playgroud)
为什么我没有得到好方法?
如果getMethod仅为方法提供方法名称,那么它将假定您正在寻找无参数方法.该getMethod方法有一个varargs参数,用于您正在寻找的方法的参数类.
使用
Handshake.class.getMethod("CheckRevision", Session.class);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17138 次 |
| 最近记录: |