从javabean中提取get和set方法。

在“任意”一个javabean中提取出其中所有的get和set方法,然后在另外的一个类中使用:org.setId(row.getId());org.setProtocol... 在“任意”一个javabean中提取出其中所有的get和set方法,然后在另外的一个类中使用:
org.setId(row.getId());
org.setProtocol(row.getProtocol());
org.setHostIp(row.getHostIp());
org.setPort(row.getPort());
org.setBaseUrl(row.getBaseUrl());
org.setUser(row.getUser());
org.setPassword(row.getPassword());
org.setEncrypt(row.getEncrypt());



一个通用的方法,把任意的get和set变成如上的格式。
(对java理解有限,表达不是很好,请各位帮忙。)
展开
 我来答
hesper0
推荐于2016-09-08 · TA获得超过512个赞
知道小有建树答主
回答量:289
采纳率:0%
帮助的人:231万
展开全部
你可以看下java反射机制,可以解决你的问题。
简单写了下:

import java.lang.reflect.Method;

public class Demo {
private String id;

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
Demo demo = new Demo();
Method[] methods = Demo.class.getMethods();// 类的方法
for (Method method : methods) {
String methodName = method.getName();
// System.out.println("方法名:" + methodName);
if (methodName.startsWith("set")) {// 如果方法名以set开头
method.invoke(demo, "测试值");// 调用方法
}
}
for (Method method : methods) {
String methodName = method.getName();
// System.out.println("方法名:" + methodName);
if (methodName.startsWith("get") && !methodName.equals("getClass")) {// 如果方法名以get开头
Object value = method.invoke(demo);// 调用方法,并打印返回值
System.out.println(value);
}
}
}

}
不一定是飞机
2011-08-02 · TA获得超过827个赞
知道小有建树答主
回答量:270
采纳率:100%
帮助的人:324万
展开全部
你的意思是,随便给一个类名,然后能在其他类里调用它的get set方法么?
如果是的话请追问,不是的话请解释。我理解能力有限...
追问
是的。刚接触java
追答
你说的其实就是反射

测试类:
class exp{
private String str;

private int in;

public int getIn() {
return in;
}

public void setIn(int in) {
this.in = in;
}

public String getStr() {
return str;
}

public void setStr(String str) {
this.str = str;
}
}

main:
try {
Class cls = Class.forName("exp");
Object obj = cls.newInstance();
List list = Arrays.asList(cls.getDeclaredMethods());
List name = new ArrayList();
//显示所有声明的方法
for (Method method : list) {
System.out.println(method.getName());
name.add(method.getName());
}
//通过方法名调用方法 setIn
list.get(name.indexOf("setIn")).invoke(obj, 123);
//测试赋值
System.out.println(list.get(name.indexOf("getIn")).invoke(obj));

} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
以上两个类你可以放在一个.java文件里

这里需要注意的是,因为是通过反射,你最好清楚你要调用方法的名称,如果不清楚你是无法调用的
另,若你需要反射的类在缺省包里,那么注意了,只有在缺省包里才能通过反射找到他。否则你只能给他一个包
以上是反射的一个实例,通过反射你可以映射出一个完整的类。反射极其重要,建议你系统的学习下,不难,但是很重要!

希望对你又帮助
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式