筆記 java

【筆記】Java Field 相關


取得object欄位名稱

/**
 * 取得object欄位名稱
 * @param clz
 * @return
 */
public List<String> getFieldNameList(Object clz) {
	List<String> result = Lists.newArrayList();
	Field[] fields = clz.getClass().getDeclaredFields();
	result = Arrays.stream(fields).map(item -> item.getName()).collect(Collectors.toList());
	return result;
}

 

根據欄位名稱取得欄位值

/**
 * 根據欄位名稱取得欄位值
 * @param fieldName
 * @param obj
 * @return
 */
public Object getFieldValueByName(String fieldName, Object obj) {
	try {
        String upperFirstCaseName = fieldName.substring(0, 1).toUpperCase() + fieldName.substring(1);
        String getter = String.format("get%s",  upperFirstCaseName);
        Method method = obj.getClass().getMethod(getter, new Class[] {});
        Object value = method.invoke(obj, new Object[] {});
        return value;
	} catch (Exception e) {
		return null;
	}
}

 

Reference

invoke反射
comments powered by Disqus