这个问题的答案可以通过反射技术来实现。在 Java 中,反射技术可以让我们在运行时获取类的内部信息,包括类名、构造函数、成员变量、方法等。可以使用 Class.forName() 方法来加载类,然后使用 Class.getMethods() 方法来获取类的所有方法,再通过方法名来判断该方法是否为公共的。如果是公共的,就可以通过 Method.invoke() 方法来调用该方法。
具体实现代码如下:
Class<?> clazz = Class.forName("com.example.MyClass");
Method[] methods = clazz.getMethods();
for (Method method : methods) {
if (method.getName().equals("myMethod")) {
// 调用 myMethod 方法
method.invoke(null);
}
}
以上代码中,我们首先使用 Class.forName() 方法来加载类,然后使用 clazz.getMethods() 方法来获取类的所有方法。接下来,我们遍历所有方法,如果方法名为 myMethod,就使用 Method.invoke() 方法来调用该方法。需要注意的是,调用方法时需要传入一个 null 参数,因为方法调用的是静态方法,不需要传入对象。
通过以上代码,我们就可以在运行时获取类的类型,以及调用该类的公共方法。
领取专属 10元无门槛券
手把手带您无忧上云