Java 如何在类中获取方法

Java 如何在类中获取方法,java,Java,所以我正在为一个游戏开发插件加载器,它的作用是从文件夹中的.jar加载插件类对象,然后将它们添加到ArrayList中,这样用户就可以制作自己的mod。但我的java体验并不是最好的:/到目前为止,它获得了jar中的类,但我需要检查类中有哪些方法,比如用于标记的构造函数。或者如果有人知道更好的方法。任何帮助都将不胜感激 Plugin.java: PluginLoader.java: 不久前,我回答了一个类似的问题。下面是从给定类中获取所有方法的代码,我认为这是相当不言自明的: void foo(

所以我正在为一个游戏开发插件加载器,它的作用是从文件夹中的.jar加载插件类对象,然后将它们添加到ArrayList中,这样用户就可以制作自己的mod。但我的java体验并不是最好的:/到目前为止,它获得了jar中的类,但我需要检查类中有哪些方法,比如用于标记的构造函数。或者如果有人知道更好的方法。任何帮助都将不胜感激

Plugin.java:

PluginLoader.java:


不久前,我回答了一个类似的问题。下面是从给定类中获取所有方法的代码,我认为这是相当不言自明的:

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
    }
}