反射访问成员变量
来源:互联网 发布:javascript toast 编辑:程序博客网 时间:2024/05/16 08:41
public class buttoncla{
public int i;
public float f;
protected boolean b;
private String s;
}
/////////////////////////////////////////////////////////////////////
import java.lang.reflect.Field;
public class MyException{
public static void main(String []args) {
buttoncla button=new buttoncla();
@SuppressWarnings("rawtypes")
Class buttonC=button.getClass();//获取类信息
Field []declaredFields=buttonC.getDeclaredFields();//获取button成员变量
for(int i=0;i<declaredFields.length;i++)//遍历成员变量
{
Field field=declaredFields[i];
System.out.println("名称为"+field.getName());//获取成员变量名称
@SuppressWarnings("rawtypes")
Class fieldType=field.getType();//成员变量类型
System.out.println("类型为:"+fieldType);
boolean isTum=true;
while(isTum)
{
try {
isTum=false;
System.out.println("修改前的值为:"+field.get(button));//获得成员变量的值
if(fieldType.equals(int.class)) {//判断成员变量是否为Int型
System.out.println("利用方法setlnt()修改成员变量的值");
field.setInt(button,168);
}
else if(fieldType.equals(float.class)) {
System.out.println("利用方法setfloat()修改成员变量的值");
field.setFloat(button,99.9F);
}
else if(fieldType.equals(boolean.class)) {
System.out.println("利用setBoolean()修改成员变量的值");
field.setBoolean(button,true);
}
else {
System.out.println("利用方法set()修改成员变量的值");
field.set(button,"MWQ");
}
System.out.println("修改后的值为:"+field.get(button));
}
catch(Exception e) {
System.out.println(declaredFields.length);
System.out.println("在设置成员变量时抛出异常,"+"下面执行setAccessible()方法!");
field.setAccessible(true);//设置为允许访问
isTum=true;
}
}
System.out.println();
}
}
}
public int i;
public float f;
protected boolean b;
private String s;
}
/////////////////////////////////////////////////////////////////////
import java.lang.reflect.Field;
public class MyException{
public static void main(String []args) {
buttoncla button=new buttoncla();
@SuppressWarnings("rawtypes")
Class buttonC=button.getClass();//获取类信息
Field []declaredFields=buttonC.getDeclaredFields();//获取button成员变量
for(int i=0;i<declaredFields.length;i++)//遍历成员变量
{
Field field=declaredFields[i];
System.out.println("名称为"+field.getName());//获取成员变量名称
@SuppressWarnings("rawtypes")
Class fieldType=field.getType();//成员变量类型
System.out.println("类型为:"+fieldType);
boolean isTum=true;
while(isTum)
{
try {
isTum=false;
System.out.println("修改前的值为:"+field.get(button));//获得成员变量的值
if(fieldType.equals(int.class)) {//判断成员变量是否为Int型
System.out.println("利用方法setlnt()修改成员变量的值");
field.setInt(button,168);
}
else if(fieldType.equals(float.class)) {
System.out.println("利用方法setfloat()修改成员变量的值");
field.setFloat(button,99.9F);
}
else if(fieldType.equals(boolean.class)) {
System.out.println("利用setBoolean()修改成员变量的值");
field.setBoolean(button,true);
}
else {
System.out.println("利用方法set()修改成员变量的值");
field.set(button,"MWQ");
}
System.out.println("修改后的值为:"+field.get(button));
}
catch(Exception e) {
System.out.println(declaredFields.length);
System.out.println("在设置成员变量时抛出异常,"+"下面执行setAccessible()方法!");
field.setAccessible(true);//设置为允许访问
isTum=true;
}
}
System.out.println();
}
}
}
阅读全文
0 0
- 反射访问成员变量
- java 反射,访问成员变量
- java反射之访问成员变量代码
- java反射访问私有成员变量
- java反射访问私有成员变量
- Java通过反射访问私有成员变量和私有方法
- 【Java】java使用反射访问对象方法和成员变量
- 反射-关于成员变量反射
- 成员变量反射
- 反射调用成员变量
- 成员变量的反射
- 类反射学习(三) JAVA如何利用类反射调用普通函数、访问成员成员变量
- 反射:成员变量(字段)
- java 成员变量的反射
- java反射类成员变量
- java反射类成员变量
- java反射类成员变量
- Java反射四 成员变量
- Numpy 入门教程
- HDU 5148 Cities 树形DP(背包)
- Codeforces Round #439 (Div. 2) C 869C The Intriguing Obsession(思维+简单组合)
- activiti连接数据库传入数据乱码问题
- [动态规划] NKOJ 4250 小区划分
- 反射访问成员变量
- C语言算法27-37
- C++随机生成二维数组
- 20岁生日
- Codeforces Round #439
- HDU1576 A/B
- Ado.Net学习笔记
- 【笔记】美团案例-旅游推荐系统的演进
- 详解Java中的clone方法 -- 原型模式