通過反射獲取對象的屬性名、屬性值


 

@Data
public class Student {
private String name ;
private String gender ;
private String age ;
private String interest;
}

 面對一個對象,如何拿到它的所有屬性?

 

 

 /**
* 獲取屬性名數組
* */
public static String[] getFieldName(Object o){
Field[] fields=o.getClass().getDeclaredFields();
String[] fieldNames=new String[fields.length];
for(int i=0;i<fields.length;i++){
fieldNames[i]=fields[i].getName();
}
return fieldNames;
}

/**
* 通過屬性名獲取屬性值 忽略大小寫
* @param o
* @param name
* @return
* @throws Exception
*/

public static Object getFieldValue(Object o,String name)throws Exception{
Field[] fields = o.getClass().getDeclaredFields();
Object object=null;
for (Field field: fields) {
field.setAccessible(true);//可以獲取到私有屬性
if(field.getName().toUpperCase().equals(name.toUpperCase())) {
object=field.get(o);
break;
}
}
return object;
}



 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM