反射避开field.setAccessible(true); field.set(t, lineArray[i]); 赋值

Reflection should not be used to increase accessibility of classes, methods, or fields

public <T> T toJavaObject(String line) throws Exception {
    // 数据组文件没有标题行 单独处理
    if (StringUtils.isBlank(line)) {
        return null;
    } else {
        String[] lineArray = line.split(SymbolConstants.COMMA, -1);
        Class<T> clazz = getFileType().findClass();
        T t = clazz.newInstance();
        Field[] fields = clazz.getDeclaredFields();
        int i = 0;
        for (Field field : fields) {
            // field.setAccessible(true);
            // field.set(t, lineArray[i]);
            setBodyValueByField(t, field, lineArray[i]);
            i++;
        }
        return t;
    }
}

private void setBodyValueByField(Object t, Field field, String stringValue) {
    try {
        Class<?> clazz = t.getClass();
        PropertyDescriptor pd = new PropertyDescriptor(field.getName(), clazz);
        Met
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值