//此处是根据属性名来给属性名赋值的方法,本人亲自测试过可用
/**
*
* @param key属性名
* @param value属性名的值
* @param object属性的实体类
*/
public static void getValues(String key, String value, Object object) {
Object returnStr = null;
try {
Field[] fields = object.getClass().getDeclaredFields();
for (Field field: fields) {
field.setAccessible(true);
returnStr = field.get(object);
if (field.getAnnotation(JsonProperty.class) != null) {
JsonProperty annotation = ((JsonProperty) field.getAnnotation(JsonProperty.class));
if (annotation != null) {
System.out.println(annotation + "");
String jsonPropertyValue = https://www.it610.com/article/annotation.value();
if (key.equals(jsonPropertyValue)) {
field.set(object, value);
break;
}
}
}else{
String fieldName = field.getName();
if(key.equals(fieldName)){
field.set(object,value);
break;
}
}
}
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
}
}
-- 根据属性名得到属性名的值的方法,本人亲自测试过可用
/** * 通过属性名获取属性的值 * * @param key属性名 * @param object 对象 */ public static Object getValues(String key, Object object) throws IllegalAccessException{ //Object returnStr = null; //try { java.lang.reflect.Field[] fields = object.getClass().getDeclaredFields(); for (Field field : fields) { field.setAccessible(true); if (field.getAnnotation(JsonProperty.class) != null) { JsonProperty annotation = ((JsonProperty) field.getAnnotation(JsonProperty.class)); if (annotation != null) { String jsonPropertyValue = https://www.it610.com/article/annotation.value(); if (key.equals(jsonPropertyValue)) { Object values = field.get(object); return values; } } }else{ //获取的不是@jsonproperty的属性名称 String fieldName = field.getName(); if (key.equals(fieldName)) { Object values = field.get(object); return values; } } } return null; }
推荐阅读
- 封装
- 多态和对象的转型
- 记一次代码的回滚到某一次
- 通过数据库配置实现一个策略模式
- 牛客Java专项练习错题总结
- java基础类库学习 java.sql(4)如何处理BLOB类型数据
- #|BigDecimal类中的double类型值的加减问题-java
- java开发|如何在Java中引入和存储大数量级的变量并进行计算,通过数组来实现
- Java基础知识之数据类型和运算符