我需要的是以下内容:
Person p = new Person();
Command.set(p, "person.name", "William");
//After that method call in line above, p.getName() should return "William"
我需要尽可能通用的 set 方法,也就是说,不仅是一个 person 参数,而且是我想要的任何 ValueObject。 我开始使用反射来研究这个算法,但我不确定这是否合适,并且需要做很多工作。我想知道是否有任何东西已经完成,例如Java框架。
提前致谢!
最佳答案
看看 Apache Commons Beanutils 中的 PropertyUtilsBean (http://commons.apache.org/proper/commons-beanutils/javadocs/v1.9.1/apidocs/org/apache/commons/beanutils/PropertyUtilsBean.html#setProperty%28java.lang.Object,%20java.lang.String,%20java.lang.Object%29)。
应该简单如下:
Person p = new Person();
PropertyUtils.setProperty(p, "name", "William");
库也支持设置嵌套属性,例如
PropertyUtils.setProperty(p, "address.street", "Route 69");
// equivalent of p.getAddress().setStreet("Route 69")
关于java - 有什么可以根据路径设置对象的值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21378607/