我有这个类是RMIserviceexporter,基本上这个类是spring remoting现在这里有一个名为注册表端口的int变量
private int registryPort = Registry.REGISTRY_PORT; // which is set to 1099
它有setter方法
public void setRegistryPort(int registryPort) {
this.registryPort = registryPort;
}
现在我已经在以后的阶段扩展了这个类,我已经创建了一个新的类abcexpoerter,它基本上扩展了RMIserviceexporter,我必须访问RMIserviceexporter的这个registryPort变量,它是变量名称registryPort,但我不能访问这个变量,因为现在没有在父类中定义的getter方法,请告诉我可以通过反射在扩展的lass中访问此私有变量值
class abcexpoter extends RMIServiceExporter
{
// now in this class i want to access the registerPort variable value please advise how can i //access this registry port variable inside this class
}
答案 0 :(得分:1)
你可以,但你不应该。该成员可能是私人,原因。
Class
和java.lang.reflect
package文档中对此进行了介绍:您可以通过getDeclaredField
获取字段,然后使用setAccessible
强制访问该字段,然后使用相关{{1}来自Field
(getInt
,getString
,等等)的方法来获取其值。
例如,因为它是int
:
Field field = TheClass.class.getDeclaredField("registryPort");
field.setAccessible(true);
int port = field.getInt(this);