Ich habe versucht, einige Klassen bei Bedarf zu laden, so dass ich Methoden, um ihre ausführen ausführen können, da es mehr optimiert ist, aber es gibt einen NoSuchMethodFound FehlerClass-Loader liefern einen NoSuchMethodException Fehler
Klasse versucht Commandtest
zu ladenObject 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");
}
}
Und es gibt diese
[18.13.00 Warnen]: java.lang.NoSuchMethodException: java.lang.Class.execute (int) [18.13.00 Warnen]: bei java.lang.Class.getMethod (Unbekannt Quelle) [18:13:00 WARN]: um com.kkosyfarinis.spigot.xssentials.test.CommandHandlerTest.execute (CommandHandlerTest.java:53) [18:13:00 WARN]: um com.kkosyfarinis.spigot .xssentials.Xssentials.onCommand (Xssentials.java:137) [18:13:00 WARN]: um org.bukkit.command.PluginCommand.execute (PluginCommand.java:44) [18:13:00 WARN] : um org.bukkit.command.SimpleCommandMap.dispatch (SimpleCommandMap.java:141) [18:13:00 WARN]: um org.bukkit.craftbukkit.v1_11_R1.CraftServer.dispatchCommand (CraftServer.java:650) [18.13.00 Warnen]: bei org.bukkit.craftbukkit.v1_11_R1.CraftServer.dispatchServerCommand (CraftServer.java:636) [18:13:00 WARN]: um net.minecraft.server.v1_11_R1.DedicatedServer.aM (DedicatedServer.java:437) [18:13:00 WARN]: um net.minecraft.server.v1_11_R1.DedicatedServer .D (DedicatedServer.java:400) [18:13:00 WARN]: um net.minecraft.server.v1_11_R1.MinecraftServer.C (MinecraftServer.java:678) [18:13:00 WARN]: um net.minecraft.server.v1_11_R1.MinecraftServer.run (MinecraftServer.java:576) [18:13:00 WARN]: bei java.lang.Thread.run (unbekannte Quelle)
Ich habe versucht, wie die paramTypes mit: -leer- für das kein Argument Methode, int.class für das Integer-Argument ein, und den Server, CommandSender (...), aber nicht von denen bei allen
gearbeitetIrgendwelche Ideen, wie Sie das beheben können?
ich Ihren Code verstehen tat nicht, aber in executeCommand = execute.getClass() getMethod ("Ausführen", int.class);. sollte Commandtest.class nicht sein. Oder vielleicht sollten Sie es umsetzen. –