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利用反射修改类的静态变量的更多相关文章
- Java 反射修改类的常量值、静态变量值、属性值
前言 有的时候,我们需要修改一个变量的值,但变量也许存在于 Jar 包中或其他位置,导致我们不能从代码层面进行修改,于是我们就用到了下面的场景,通过反射来进行修改变量的值. 定义一个实体类 class ...
- C++类中静态变量和普通变量的区别
静态变量: 1.静态变量会被编到程序的exe里面,从程序启动到结束,它一直存在: 2.静态变量的初始化值为0: 3.全局变量默认是静态变量: 4.在类中的函数变量前面加了static的也是静态变量,只 ...
- 利用反射修改final数据域
当final修饰一个数据域时,意义是声明该数据域是最终的,不可修改的.常见的使用场景就是eclipse自动生成的serialVersionUID一般都是final的. 另外还可以构造线程安全(thre ...
- c++ 类的静态变量
类的静态变量作为类的一部分,但不由类的创建产生,类的销毁而消失.静态变量和全局变量一样,会在main函数结束后销毁. 类可以对静态变量的值进行改变 #pragma once class ctest { ...
- Java对象访问 类的静态变量
Java类的静态变量用对象和类名都能访问,一般用类名,但如果用对象来访问静态变量呢,有何种效果? 测试一下: package JavaTest; public class test{ public s ...
- java利用反射获取类的属性及类型
java利用反射获取类的属性及类型. import java.lang.reflect.Field; import java.math.BigDecimal; import java.util.Map ...
- Java利用反射取得类的所有信息
Java中可以利用反射获取类的名称.构造函数.属性.方法.也就是说可以通过反射可以取得类的所有信息(不管该成员是否封装为private). 如有下面的Dept类定义: package org.lyk. ...
- java利用反射访问类的私有(private)属性及方法
Java语言中,在一个类中,为了不让外界访问到有的属性和方法,通常将其设置为private,用正常的方式(对象名.属性名,对象名.方法名)将无法访问此属性与方法,但有没有其他方法可以访问呢?答案是有的 ...
- .NET C#利用反射获取类文件以及其中的方法&属性 并获取类及方法上的特性
了解C#特性类并声明我们自己的特性类[AttributeTest]代码如下 using System; namespace AttributeTest { /* 特性说明 特性本质是一个继承和使用了系 ...
随机推荐
- linux+asp.net core+nginx+sql server
Linux Disibutaion:Ubuntu 16.04.1 LTS Web Server:Nginx.Kestrel 安装.net core sudo sh -c 'echo "deb ...
- redhat ping不通外网的解决办法
ping自己和网关都能ping通就是无法ping通外网例如百度: [root@ocdp1 ~]# ping www.baidu.com ping: unknown host www.baidu.com ...
- java环境变量详解---找不到或无法加载主类
默认安装在C:\ProgramFiles\Java\jdk1.7.0目录下环境变量配置为PATH=.;%JAVA_HOME%\binCLASSPATH=.;%JAVA_HOME%\lib\dt.jar ...
- Android中FTP服务器搭建入门
http://www.2cto.com/kf/201501/374048.html http://blog.csdn.net/smile3670/article/details/44343617 有 ...
- powerdesign设置实体显示格式
工具-显示参数选择中,如下图:
- ### C++总结-[类成员函数]
C++类中的常见函数. #@author: gr #@date: 2015-07-23 #@email: forgerui@gmail.com 一.constructor, copy construc ...
- Dealloc 在哪个线程执行
1. 引子 在面试过程中曾见过这样一道笔试题,选择你认为对的答案 A.所有对象的dealloc方法会在主线程调用 B.一个对象的dealloc方法会在分配该对象的线程被调用 C.一个对象的deallo ...
- mybatis关联查询
场景:一个人有多个手机号,一个手机号对应一个人 CREATE TABLE test.mobile ( mid INT NOT NULL auto_increment, tel ), pid INT, ...
- python拆分excel脚本
因为需要将一个很大的excel按500条拆分为多个excel,手工操作实在太麻烦,就写了个python小脚本,现在是分为了多个sheet页,使用者可根据自己实际情况修改成多个文件的形式 #!/usr/ ...
- List分页显示
//对List集合 数据进行分页 int pageNum = page.getPageNo();// 当前显示第几页 int perPageNum = page.getPageSize(); // ...