首页 > 解决方案 > 如果方法采用原始类型,如何将字符串转换为 setter 函数?

问题描述

我正在尝试为一个接受原始类型参数的类生成一个设置器,但是我遇到了一个异常,因为只允许使用非原始类型。

为此,我采用一个字符串并将其完全转换为函数在我的 POJO 中的方式,但是在描述参数的类型 (int) 时,它采用了它的包装类 (Integer)。

Method method = resultClass.getClass().getMethod(getSetMethod(key), value.getClass());


private String getSetMethod(String key) {
    key = key.substring(0, 1).toUpperCase() + key.substring(1);
    key = "set"+key;
    return key;
}

谁能告诉我是否有另一种方法可以生成适用于原始类型和非原始类型的此方法?

标签: javareflection

解决方案


如果您可以选择添加库。库commons-beanutils可用于处理 bean 和属性。

在你的情况下,你可以这样做:

Method method = PropertyUtils.getReadMethod( new PropertyDescriptor(key, resultClass));

推荐阅读