【问题标题】:Get specific property of object using java Reflection使用java反射获取对象的特定属性
【发布时间】:2011-04-23 09:42:00
【问题描述】:

我有用户类,它有不同的对象,如国家、地址、汽车和许多其他对象。 所有嵌入的对象都有很长的用户标识属性。我有 User 对象,我想使用 java 反射将所有嵌入对象的 userid 属性设置为特定值或 null。 否则我必须为每个不同的对象编写方法。

【问题讨论】:

    标签: java reflection properties


    【解决方案1】:

    您可以使用Apache Common's ReflectionUtils 和 BeanUtils 类来帮助您。 ReflectionUtils 有几个辅助方法可以帮助发现您感兴趣的属性,而 BeanUtils 有辅助方法来填充属性/字段的值。

    【讨论】:

      【解决方案2】:

      除非有特定原因使用反射,否则最好不要使用它。

      如果您正在寻找使用反射是因为它很方便或者需要更少的代码行/使代码可读,那么请注意这不是真的。

      通常,反射代码的可读性较差,使用正常调用方法的方式几乎总是更好。

      当你的方法名称只在运行时知道(通过属性文件或其他东西)时,反射是合适的

      如果出于任何原因,您需要反思,请参阅this

      【讨论】:

        【解决方案3】:

        如果我以正确的方式理解任务,您可以不加思索地完成。

        abstract class Embedded {
            private static final Set<Integer> obj = ...;
            {
                //init obj
            }
            protected Embedded(int id){
                set.add(id);
            }
            public static Set<Integer> getAllIDs(){
                return obj; //return copy or immutable collection
            }
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-09-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多