该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
package com.my.test;
import java.lang.reflect.Field;
import java.util.Date;
import org.omg.CORBA.PUBLIC_MEMBER;
public class Test {
public void info(){
int a=0;
System.out.println("这个不是静态的方法");
}
private int age;
public Test grow(){
age++;
return this;
}
public static void swap(int a,int b){
int tem=a;
a=b;
b=tem;
System.out.println("swap方法里,a的值是:"+a+"b的值是"+b+"swap的值是"+tem);
}
public static void main(String []args) throws IllegalArgumentException, IllegalAccessException{
Test test=new Test();
test.info();
System.out.println("这个是静态的方法");
test.grow()
.grow().grow().grow().grow();
System.out.println(test.age);
int a=6;
int b=9;
swap(a, b);
System.out.println("交换接过后,变量a的值:"+a+"变量b的值:"+b);
//暴力反射
/*est e=new est(4, 5);
Field field1 = e.getClass().getDeclaredField("x");
field1.setAccessible(true);
System.out.println(field1.get(e));
*/
//当只知道类的名字时,给该类中的石油属性赋值
est p=new est(b, b);
//获取class
Class c=p.getClass();
//获取该类的所有字段
Field []fields=p.getClass().getDeclaredFields();
//遍历赋值
for(int i=0;i
String filedName=fields[i].getName();
//AccessibleTest类中的成员变量为private,故必须进行此操作
fields[i].setAccessible(true);
//判断类型
Class> type=fields[i].getType();
//获取字段类型
String typeName=type.getName();
System.out.println(type.getName());
//对字段进行赋值 第一个参数为对象引用第二个参数为要附的值
//如果为字符串类型
if("java.lang.String".equals(typeName)){
fields[i].set(p, "1");
}
//如果为日期类型
else if("java.lang.Date".equals(typeName)){
fields[i].set(p, new Date());
}
else{
fields[i].set(p,1);
}
}
p.i();
}
}