Java中有什么方法可以存储对类的引用?这是我想做的:
public class Foo
{
public static void doSomething() {...}
};
SomeClass obj = Foo;
obj.doSomething();
是否有一些类“ SomeClass”可以让我存储对一个类的引用,以便以后可以使用该存储的对象调用原始类的静态成员?
显而易见的是Class类:
Class obj = Foo.class;
obj.someMember().doSomething();
但是我还没有弄清楚Class的哪个成员可以充当“ someMember()”……我想他们都不是。
有谁知道我想做的事情在Java中是否可行?
您可以使用类上的getMethod()方法从Class对象动态获取方法。如果方法是静态的,则“调用”的“对象”参数将为空。
例如,上面的“ obj.someMember()”将如下所示:
obj.getMethod("someMember", null).invoke(null, null);
多余的null是因为您的方法不需要参数。如果您的方法采用参数,则需要相应地传递它们。
这将引发各种检查异常,因此您也需要处理这些异常。
调用方法后,它将返回一个Object。您将需要将其强制转换为所需的任何类型,然后就可以直接在其上运行“ doSomething()”方法。
如果您想进一步了解它,可以使用一种称为反射的技巧。:)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句