我一直在试图按需加载一些类,这样我可以运行自己的执行方法,因为它是更优化,但它返回一个错误NoSuchMethodFound类加载器返回NoSuchMethodException错误
类试图加载Commandtest
Object execute = Class.forName("com.kkosyfarinis.spigot.xssentials.test." + _className);
Class<?>[] paramTypes = {Server.class, CommandSender.class, String.class, String[].class};
executeCommand = execute.getClass().getMethod("execute", int.class);
//
//For the server, commandsender(...)
//executeCommand.invoke(server, sender, label, args);
//
//for int
//executeCommand.invoke(5);
//
//for empty
//executeCommand.invoke();
Commandtest.java
package com.kkosyfarinis.spigot.xssentials.test;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
public class Commandtest extends CommandHandlerTest{
protected Commandtest() {
super("test");
}
public void execute(Server server, CommandSender sender, String label, String args)
{
System.out.println("this is a test");
}
protected void execute(int test)
{
System.out.println(test);
}
protected void execute()
{
System.out.println("this is a test");
}
}
,并返回该
[18:13:00 WARN]:java.lang.NoSuchMethodException: java.lang.Class.execute(int)[18:13:00 WARN]:at java.lang.Class.getMethod(Unknown来源)[18:13:00警告]:在 com.kkosyfarinis.spigot.xssentials.test.CommandHandlerTest.execute(CommandHandlerTest.java:53) [18:13:00警告]:在 com.kkosyfarinis.spigot .xssentials.Xssentials.onCommand(Xssentials.java:137) [18:13:00 WARN]:at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) [18:13:00 WARN] :at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [18:13:00 WARN]:at org.bukkit.craftbukkit.v1_11_R1.CraftServer.dispatchCommand(CraftServer.java:650) [18:13:00 WARN]:at org.bukkit.craftbukkit.v1_11_R1.CraftServer.dispatchServerCommand(CraftServer.java:636) [18:13:00警告]:在 net.minecraft.server.v1_11_R1.DedicatedServer.aM(DedicatedServer.java:437) [18:13:00警告]:在 net.minecraft.server.v1_11_R1.DedicatedServer .D(DedicatedServer.java:400) [18:13:00 WARN]:at net.minecraft.server.v1_11_R1.MinecraftServer.C(MinecraftServer.java:678) [18:13:00 WARN]:at net.minecraft.server.v1_11_R1.MinecraftServer.run(MinecraftServer.java:576) [18:13:00 WARN]:at java.lang.Thread.run(Unknown Source)
我也尝试使用作为paramTypes:空白 - 对于没有参数的方法,int.class为整数参数之一,服务器,CommandSender(...),但那些都
工作的非有关如何解决此问题的任何想法?
我不理解你的代码,但在executeCommand = execute.getClass()getMethod( “执行”,int.class)。不应该是Commandtest.class。或者,也许你应该施放它。 –