java - 有什么可以根据路径设置对象的值吗?

标签 java reflection set setvalue

我需要的是以下内容:

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/

相关文章:

java - Gradle:使集成测试源模块工作

c# - 无法通过 IL Emit on Object 设置某些类型值

java - 设置和获取方法未按计划工作

c++ - 在 std::set 中查找 std::vector 的元素

python - 从列表中删除与子字符串匹配的项目的最快方法 - Python

java - 迭代后检索值

java - 如何使用SmartGWT 2.2绘制流程图?

java - Sonarqube PASS,即使阈值太低

java - 在 driver=new ChromeDriver(); 行上获取 "InvocationTargetException"异常;

scala - 有什么方法可以从 Scala (2.10) 类型标记或符号获取 Java 类吗?