当常量类中常量很多,而我们有不确定对其中哪些常量赋值的情况下,比如一个接收es查询返回的常量类。我们可能就需要反射来对常量赋值/取值
private final Class<?> stockClass = this.getClass();
public void setValue(Object data, String tag) {
Field field;
try {
field = getStockClass().getDeclaredField(tag);
field.setAccessible(true);
field.set(this, data);
} catch (NoSuchFieldException | SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* @Title: getValue
* @Description: 任意取值
* @param: @param tag
* @param: @return
* @return: Object
* @throws
*/
public Object getValue(String tag) {
Field field;
Object result = null;
try {
field = getStockClass().getDeclaredField(tag);
field.setAccessible(true);
result = field.get(this);
} catch (NoSuchFieldException | SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
}
——————————————————————————————————
作者:桃花惜春风
转载请标明出处,原文地址:
https://blog.csdn.net/xiaoyu_BD/article/details/81735784
如果感觉本文对您有帮助,请留下您的赞,您的支持是我坚持写作最大的动力,谢谢!