jav利用反射修改类的静态变量
Posted 黎明露珠
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jav利用反射修改类的静态变量相关的知识,希望对你有一定的参考价值。
有Student这个类:
public class Student { private static String schoolName=""; private static String schoolArea= ""; private static boolean isSetValue= false; private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
现在想将类中的所有静态变量改为java中默认赋的初始值,
public static void resetStaticVar() { Field[] fields= Student.class.getDeclaredFields(); for(Field field:fields) { if(Modifier.isStatic(field.getModifiers())) { if(field.getType()==int.class) { field.set(null,0); } else if(field.getType()==float.class) { field.set(null,0.0); } else if(field.getType()=double.class) { field.set(null,0.0D); } else if(field.getType()==boolean.class) { field.set(null,false); } else { Object val= field.getType().newInstance(); field.set(null,val); } } } }
或者这里的null也可以换成Student对象的一个实例
以上是关于jav利用反射修改类的静态变量的主要内容,如果未能解决你的问题,请参考以下文章