用反射设置属性方法。自己一个例子

private List<AeNoticeListVO> getListVo(Object info,String storeId,String storeName) throws Exception

{

List<AeNoticeListVO> rL = new ArrayList<AeNoticeListVO>();

JSONArray  aInfo = (JSONArray)info;

if(aInfo.size()==0)

{

return rL;

}

for (int i = 0; i < aInfo.size(); i++)

{

JSONObject jItem = aInfo.getJSONObject(i);

AeNoticeListVO aevo = new AeNoticeListVO();

Field[] field = aevo.getClass().getDeclaredFields();

for(int j=0;j<field.length;j++)

{

String  value = getJasonValue(jItem,field[j].getName());

if(null!=value)

{

Method m = aevo.getClass().getMethod("set"+captureName(field[j].getName()),String.class);

                    m.invoke(aevo, value);

}

}

aevo.setStore_id(storeId);

aevo.setStore_name(storeName);

aevo.setUpdate_time(new Date());

rL.add(aevo);

}

return rL;

}


注意自动的set的方法第一个字母都是大写

protected String captureName(String name) {

        char[] cs=name.toCharArray();

        cs[0]-=32;

        return String.valueOf(cs);

        

    }


一个常见的例子是在 Android 中使用反射来动态获取类的信息。比如,我们可以通过反射来获取一个类的所有属性方法,并根据需要进行调用、修改等操作。 以下是一个简单的示例,演示如何使用反射来获取类的信息: ```java public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); getInfo(Student.class); } private void getInfo(Class<?> clazz) { Field[] fields = clazz.getDeclaredFields(); Method[] methods = clazz.getDeclaredMethods(); for (Field field : fields) { Log.d("MainActivity", "Field name: " + field.getName()); } for (Method method : methods) { Log.d("MainActivity", "Method name: " + method.getName()); } } } class Student { private String name; private int age; public Student(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } } ``` 在上面的示例中,我们定义了一个 Student 类,并使用反射机制来获取该类的所有属性方法。具体来说,我们通过 `clazz.getDeclaredFields()` 方法获取 Student 类的所有属性,通过 `clazz.getDeclaredMethods()` 方法获取 Student 类的所有方法。然后,我们遍历这些属性方法,并使用 `Log.d()` 方法输出它们的名称。 当我们运行该示例时,可以看到如下的日志输出: ``` Field name: name Field name: age Method name: getName Method name: getAge Method name: setName Method name: setAge ``` 从输出结果中可以看出,我们使用反射成功地获取了 Student 类的所有属性方法,并且可以根据需要进行调用、修改等操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值