Java 如何在类中获取方法
所以我正在为一个游戏开发插件加载器,它的作用是从文件夹中的.jar加载插件类对象,然后将它们添加到ArrayList中,这样用户就可以制作自己的mod。但我的java体验并不是最好的:/到目前为止,它获得了jar中的类,但我需要检查类中有哪些方法,比如用于标记的构造函数。或者如果有人知道更好的方法。任何帮助都将不胜感激 Plugin.java: PluginLoader.java:Java 如何在类中获取方法,java,Java,所以我正在为一个游戏开发插件加载器,它的作用是从文件夹中的.jar加载插件类对象,然后将它们添加到ArrayList中,这样用户就可以制作自己的mod。但我的java体验并不是最好的:/到目前为止,它获得了jar中的类,但我需要检查类中有哪些方法,比如用于标记的构造函数。或者如果有人知道更好的方法。任何帮助都将不胜感激 Plugin.java: PluginLoader.java: 不久前,我回答了一个类似的问题。下面是从给定类中获取所有方法的代码,我认为这是相当不言自明的: void foo(
不久前,我回答了一个类似的问题。下面是从给定类中获取所有方法的代码,我认为这是相当不言自明的:
void foo(Object o)
{
Class<?> c = o.getClass();
for (Method m : c.getDeclaredMethods())
{
//do whatever
}
}
这利用了Java的反射API。您可以阅读更多有关它的信息。使用反射!!!~或者您可以指示程序记住这些方法,因为它们不会被更改。顺便问一下,你为什么不使用Bukkit就尝试构建Minecraft插件呢?制作一个修改过的griefing客户端:P不过我会看看reflection。对java很陌生。-。检查一下,如果它有用,你有没有想过使用JarClassLoader?我听说过,但是我知道的不多。不过我要看看。
package me.rigamortis.faurax.plugin;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.client.Minecraft;
import me.rigamortis.faurax.core.Core;
public class PluginLoader {
public static List<Plugin> plugins = new ArrayList<Plugin>();
public PluginLoader() {
loadPlugins();
}
public void loadPlugins() {}
}
void foo(Object o)
{
Class<?> c = o.getClass();
for (Method m : c.getDeclaredMethods())
{
//do whatever
}
}