我的要求是从我的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;
}
}
答案 0 :(得分:1)
这个问题本身就让人感到困惑,但我想(并且猜测我的意思是猜测)你试图在一个对象中获取一个字段的值而不知道如何访问它。在这种情况下,请查看Apache Commons BeanUtils(尤其是BeanUtils.get * Property()方法)。
另一方面,如果您只需要将对象序列化为XML,那么您应该查看可以帮助您完成此操作的API(例如JAXB),而不是编写自己的代码。