import java.lang.reflect.Field;
import java.util.LinkedList;
import java.util.List;
/**
* @Auther: liyue
* @Date: 2018/10/24 14:44
* @Description:
*/
public class ReflexUtil {
/**
* 获取对象的所有属性值
*
* @param clazzT
* @param <T>
* @return
*/
public static <T> List<String> getObjectAttributeNames(Class<T> clazzT) {
List<String> list = new LinkedList<>();
try {
//根据类名获得其对应的Class对象 写上你想要的类名就是了 注意是全名 如果有包的话要加上 比如java.Lang.String
Class clazz = Class.forName(clazzT.getName());
//根据Class对象获得属性 私有的也可以获得
Field[] fields = clazz.getDeclaredFields();
for (Field f : fields) {
list.add(f.getName());
// 类型
// f.getType();
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
/**
* 把对象String类型为空的值设置为""
*
* @param object
*/
public static void setNotNull(Object object) {
try {
for (Field f : object.getClass().getDeclaredFields()) {
f.setAccessible(true);
//判断字段是否为空,并且对象属性中的基本都会转为对象类型来判断
if (f.get(object) == null) {
try {
f.set(object, "");
} catch (Exception e) {
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Test t = new Test();
t.setD(142.435);
t.setD2(2.652);
t.setS("111sdfs");
System.err.println(t);
setDouble2bit(t);
System.err.println(t);
}
/**
* 把属性类型为Double的保留两位小数
*
* @param object
*/
public static void setDouble2bit(Object object) {
try {
for (Field f : object.getClass().getDeclaredFields()) {
f.setAccessible(true);
try {
Class<?> type = f.getType();
String typeName = type.getTypeName();
if (typeName.equals("double") || typeName.equals("java.lang.Double")) {
String s = f.get(object) + "";
f.set(object, CalculateProportionUtil.doubleBit(Double.parseDouble(s), 2));
}
} catch (Exception e) {
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* * 对象转JSONObject
*
* @param o
*/
public static JSONObject setJson(Object o) {
JSONObject json = new JSONObject();
try {
for (Field f : o.getClass().getDeclaredFields()) {
f.setAccessible(true);
//判断字段是否为空,并且对象属性中的基本都会转为对象类型来判断
if (f.get(o) != null) {
try {
json.put(f.getName(), f.get(o));
} catch (Exception e) {
e.printStackTrace();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return json;
}
}
fastjson
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.83</version>
</dependency>
END。