获取一个类所有属性

1.需求场景

有时候一个类里面有很多的属性,我们需要把这些类的名字单独拎出来处理,比如说手动配置 mybatis 的 Mapper 文件,这个时候手动的去拷贝这些属性将会变得非常枯燥,这个时候我们可以使用一个类自动的帮我们把这些属性给获取出来,按照我们需要的格式给输出出来,这大大节省了我们自己的时间,而且不会出错。

2.一个测试类

/**  
 * Project Name:test  
 * File Name:Test.java  
 * Package Name:com.test.field  
 * Date:2017年2月24日上午10:39:30  
 *  
*/  

package com.test.field;  
/**  
 * ClassName:Test <br/>  
 * Date:     2017年2月24日 上午10:39:30 <br/>  
 * @author   ztd  
 * @version    
 * @see        
 */
public class Test {
    private int id;
    private String name;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

}

3.获取这个类所有属性的工具类

/**  
 * Project Name:test  
 * File Name:GetField.java  
 * Package Name:com.test.field  
 * Date:2017年2月24日上午10:39:20  
 *  
*/  

package com.test.field;  

import java.lang.reflect.Field;

/**  
 * ClassName:GetField <br/>  
 * Date:     2017年2月24日 上午10:39:20 <br/>  
 * @author   ztd  
 * @version    
 * @see        
 */
public class GetFieldNamesUtils {
    public static void main(String[] args) {
        getFiledsNameWithBlankLine("com.test.field.Test");
        System.out.println("===================");
        getFiledsNameWithPoint("com.test.field.Test");
    }

    /**  
     *  把属性通过换行的方式输出出来
     * @author ztd  
     * @param classPath  
     */
    private static void getFiledsNameWithBlankLine(String classPath) {
        Class<?> clazz = null;

        try {
            clazz = Class.forName(classPath);
        } catch (ClassNotFoundException e) {

            e.printStackTrace();  

        }
        Field[] fields = clazz.getDeclaredFields();
        for(Field f : fields) {
            System.out.println(f.getName());
        }
    }

    /**  
     *  把属性通过“,”连接起来输出
     * @author ztd  
     * @param classPath  
     */
    private static void getFiledsNameWithPoint(String classPath) {
        Class<?> clazz = null;
        try {
            clazz = Class.forName(classPath);
        } catch (ClassNotFoundException e) {

            e.printStackTrace();  

        }
        Field[] fields = clazz.getDeclaredFields();
        StringBuffer sb = new StringBuffer();
        for(Field f : fields) {
            sb.append(f.getName()).append(",");
        }
        System.out.println(sb.toString());
    }
}

4.效果:

id
name
===================
id,name,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值