Java:通过反射访问对象的bean类型方法

杰森S:

这是访问对象的bean属性而不知道/关心它的确切类型的合适方法吗?(或者是否有内置方法已经执行此操作?)当属性不存在或不可用时,是否存在适当的异常抛出?

static private Object getBeanPropertyValue(Object bean, String propertyName) {
    // access a no-arg method through reflection
    // following bean naming conventions
    try {
        Method m = bean.getClass().getMethod(
                "get"
                +propertyName.substring(0,1).toUpperCase()
                +propertyName.substring(1)
                , null);
        return m.invoke(bean);
    }
    catch (SecurityException e) {
        // (gulp) -- swallow exception and move on
    }
    catch (NoSuchMethodException e) {
        // (gulp) -- swallow exception and move on
    }
    catch (IllegalArgumentException e) {
        // (gulp) -- swallow exception and move on
    }
    catch (IllegalAccessException e) {
        // (gulp) -- swallow exception and move on
    }
    catch (InvocationTargetException e) {
        // (gulp) -- swallow exception and move on
    }
    return null; // it would be better to throw an exception, wouldn't it?
}
用户101884:

如果您不能使用Commons BeanUtils,则可以使用jre类到达那里

java.beans.Introspector

BeanInfo beanInfo = Introspector.getBeanInfo(bean.getClass());
PropertyDescriptor[] descriptors = beanInfo.getPropertyDescriptors();
for(PropertyDescriptor pd : descriptors)
{
    if(pd.getName().equals(propertyName)
    {
        return pd.getReadMethod().invoke(bean, (Object[])null);
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

通过Java反射找到Scala类型的伴随对象的可靠方法是什么?

通过反射创建对象时,如何覆盖Java中的方法?

java通过反射访问Integer构造函数

Java:无法通过反射访问注释

调用方法的对象-Java反射

是否可以通过Jigsaw在Java 9中通过反射访问包范围的方法?

通过反射和返回类型查找方法

通过反射调用泛型方法时,“对象与目标类型不匹配”

动态(通过反射)Java对象的字段的值

如何通过反射访问Kotlin中的类型使用批注?

如何通过Scala / Java方法中的反射获取参数名称和类型?

Java如何通过以原始类型作为参数的反射来调用方法

通过反射将子类类型传递给Java泛型方法不会引发异常

如果类引用原始类型,则所有访问通过ASM生成的类的构造函数的反射方法都将引发NoClassDefFoundError。

Java中类型安全的方法反射

Java反射:获取方法的返回参数的类型

反射API(对象的类型)

仅通过反射调用的Java方法。注释?

如何通过在java中使用反射直接在bean类的私有Setter方法中设置值

Java-通过数组索引访问对象方法

通过此方法访问对象

通过反射获取给定类的可访问方法的列表

Java:通过反射(行为)访问私有字段

为什么允许通过反射访问Java私有字段?

通过反射访问Java中的私有变量

通过Java中的反射访问私有继承的字段

Java通过反射访问私有财产

Java-通过反射访问非静态属性

Spring AOP:在该 Bean 上应用 ProxyFactoryBean 后,我们可以通过 getBean("beanName") 方法访问 bean 对象吗?