java 反射 通过属性名获取读写的方法
时间: 2023-06-13 07:02:06 浏览: 90
Java 采用反射获取class属性值的实现代码
可以通过 Java 反射机制来获取属性的读写方法,具体步骤如下:
1. 获取属性名,例如属性名为 "name"。
2. 通过 Class 类的 getDeclaredField 方法获取属性对应的 Field 对象,代码如下:
```
Field field = clazz.getDeclaredField("name");
```
3. 通过 Field 对象的 getGenericType 方法获取属性类型,代码如下:
```
Class fieldType = field.getGenericType();
```
4. 获取属性的读取方法,例如属性名为 "name",则读取方法名为 "getName",通过 Class 类的 getMethod 方法获取对应的 Method 对象,代码如下:
```
Method getter = clazz.getMethod("get" + StringUtil.capitalize(field.getName()));
```
其中 StringUtil.capitalize 方法用于将属性名首字母大写。
5. 获取属性的写入方法,例如属性名为 "name",则写入方法名为 "setName",通过 Class 类的 getMethod 方法获取对应的 Method 对象,代码如下:
```
Method setter = clazz.getMethod("set" + StringUtil.capitalize(field.getName()), fieldType);
```
其中 StringUtil.capitalize 方法用于将属性名首字母大写。
完成上述步骤后,就可以通过反射来获取属性的读写方法了。需要注意的是,如果属性没有对应的读写方法,则会抛出 NoSuchMethodException 异常。
阅读全文