gpt4 book ai didi

java - 我们可以使用反射来获取类的静态成员而不在对象实例上调用该方法吗?

转载 作者:行者123 更新时间:2023-12-01 06:53:28 26 4
gpt4 key购买 nike

我们可以使用反射来获取类的静态成员而不在对象实例上调用该方法吗?

换句话说:

 public class MuchoStatic {

private static staticMember;

getStaticMember(){

return this.staticMember;

}
} //end class

然后还有更多代码:

Method m = null;

try{

m = MuchoStatic.class.getMethod("getStaticMember",null);

} catch (Exception e) {

}

Object o = null;
try{

o = m.invoke(MuchoStatic.class,null);

} catch (Exception e) {

}

我收到非法参数异常,我认为这是因为我将 Class 对象传递到调用方法中。事实证明,Object o 确实被实例化了,但仍然抛出异常。

我们不应该这样做吗?

最佳答案

Can we use reflection to get a static member of a class without invoking that method on an object instance?

当然,因为它是静态的。

Object o = null;
try {
Method m = MuchoStatic.class.getMethod("getStaticMember");
m.setAccessible(true);
o = m.invoke(null);

} catch (Exception e) {
// don't ignore the exception as it may be trying to tell you something
throw new AssertionError(e);
}

关于java - 我们可以使用反射来获取类的静态成员而不在对象实例上调用该方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19038043/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com