获取一个类所有属性
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,
还没有评论,来说两句吧...