gpt4 book ai didi

java - 使用反射获取声明为字段的 bean - 它的值

转载 作者:太空宇宙 更新时间:2023-11-04 07:14:33 25 4
gpt4 key购买 nike

我的要求是从我的 bean 中获取值并将其设置为我的 XML。

使用反射,我在 Map.. 中获取了所有方法名称,并将方法名称传递到 myClass.getMethod("getProposerName", new Class[] {}) 中并获取值。我的输入将是 TestBean 实例作为参数,使用该实例我必须获取所有值

执行方法

public void executeMethod(Class<?> className)  //where i get instance of TestBean
{
Class<?> myClass = Class.forName(className.getName()); ////I pass as argument
Object instance = myClass.newInstance();
Method method = myClass.getMethod("Pass my method name", new Class[] {}); //Pass my methodname i.e getProposerName
String Value= (String) method.invoke(instance , new Object[] {}); // Here i get my proposer name of class
}

policyname的值设置如下

TestBean instance =  new  TestBean();
instance.setProposerName("Jack");
instance.getDeclaredBean.setPolicyName("Accident Policy"); // Note : This is problem how to maintain the reference of TestBean to get accident Policy in above execution method

上面的代码可以帮助我从 TestBean 获取值,但是我的问题是 DeclaredBean 值,它是 TestBean 中的字段类型。使用上面的执行方法帮助我..

我有 n 个类值要使用此执行方法提取。下面是我的两个类。

TestBean.java

public class TestBean 
{
private String proposerName;

public DeclaredBean declaredBean;

public TestBean() {
super();
}

public String getProposerName() {
return proposerName;
}

public DeclaredBean getDeclaredBean() {
return declaredBean;
}

public void setDeclaredBean(DeclaredBean declaredBean){
this.declaredBean = declaredBean;
}

public void setProposerName(String proposerName) {
this.proposerName = proposerName;
}
}

DeclaredBean.java

public class DeclaredBean 
{
private String policyName;

public DeclaredBean() {
super();
}

public String getPolicyName() {
return policyName;
}

public void setPolicyName(String policyName) { // Access this method in my execute method
this.policyName = policyName;
}
}

最佳答案

这个问题本身就很令人困惑,但我猜(我的猜测实际上是猜测)你试图获取对象中字段的值,但实际上不知道如何访问它。在这种情况下,请查看 Apache Commons BeanUtils (尤其是 BeanUtils.get*Property() 方法)。

另一方面,如果您需要的只是将对象序列化为 XML,那么您应该研究可以帮助您完成此操作的 API(例如 JAXB),而不是编写自己的代码。

关于java - 使用反射获取声明为字段的 bean - 它的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20147950/

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