反射练习

1.反射

一种计算机处理方式。是程序可以访问、检测和修改它本身状态或行为的一种能力。

新建一个Person类:

public class Person {
private int age;
private String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Person(){

}

private Job job;
public Job getJob() {
return job;
}
public void setJob(Job job) {
this.job = job;
}
}

2.再建一个测试类:

public class TestUI {

    public static void main(String[] args) {
        Class classzz = Person.class;
        
        Field[] fields = classzz.getDeclaredFields();
        for(Field f:fields){
            Class c = f.getType();
            if(c.getPackage()!=null){
                if(c.getPackage().getName().equals("com.Test")){//筛选出Job类
                    System.out.println(c.getPackage().getName());
                    System.out.println("字段的类型:"+c.getName());
                    System.out.println("该字段的名字:"+f.getName());
                }
            }
        }
        String userInfoSQL = BeanUtil.getSelect(new UserInfo());
        System.out.println(userInfoSQL);
    }
}

 3.新建一个Job类:

public class Job {
    private String name;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

4.BeanUtil类的内容

public class BeanUtil {
    public static String getSelect(Object obj){
        Class classzz = obj.getClass();
        String TableName = classzz.getSimpleName();
        StringBuffer sql = new StringBuffer();
        sql.append("Select * from "+TableName+" ");
        return sql.toString();
    }
}

 

5.显示结果:

com.Test
字段的类型:com.Test.Job
该字段的名字:job
Select * from UserInfo//提取出BeanUtil里的sql语句

posted @ 2016-06-13 15:26  绿天  阅读(172)  评论(0编辑  收藏  举报