亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java中為實體對象的動態屬性賦值

java中為實體對象的動態屬性賦值

子衿沉夜 2018-07-22 07:08:23
例如: User 對象中有100個屬性,從jsp頁面傳過來的參數對應了其中的某一個屬性,根據User中的set方法為具體的屬性賦值。怎么樣根據set方法或者其他的方法為對應的不確定的屬性賦值!  public class User{   private String field1;    private String field2;    private String field3;    private String field4;    private String field5;    private String field6;    private String field7;    private String field8;    private String field9;    private String field10;    private String field11;    private String field12;    private String field13;    private String field14;    private String field15;    private String field16;    private String field17;    private String field18;    private String field19;    private String field20;  ..//get、set方法省略  } String param = request.getParameter(" field ? "); 其中? 根據json返回的數據自動生成的文本框,獲取到的屬性名稱,對應了User中的具體某個屬性。比如:?為1,則獲取到field1 的值,然后將其賦值給User。如何解決以上,為User多個屬性動態賦值。
查看完整描述

3 回答

?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

下面是User類:

import java.lang.reflect.Field;import java.util.HashMap;import java.util.Map;public class User {    private Map<String, String> map = new HashMap<String, String>();    

    
    public boolean contains(String key) {
        Class<FieldString> fieldClass = User.FieldString.class;
        Field[] fields = fieldClass.getFields();        for (Field f : fields) {            if (key.equals(f.getName())) {                return true;
            }
        }        
        return false;
    }    
    public void putParam(String key, String value) {
        map.put(key, value);
    }    
    public String getParam(String key) {        return map.get(key);
    }    
    private class FieldString {        public String field1;        public String field2;        public String field3;        public String fiels4;
    }
    
}

進行測試:

public class Test {    public static void main(String[] args) {
        String key = "field1";
        String value = "hello";
        User user = new User();        
        if(user.contains(key)) {
            user.putParam(key, value);
        }
        
        System.out.println(user.getParam(key));
    }
}


查看完整回答
反對 回復 2018-07-23
?
慕尼黑5688855

TA貢獻1848條經驗 獲得超2個贊

這個很顯然得利用Java反射來解決了。

setValue(Class beanClass,HttpServeltRequest request){

Object user=beanClass.newInstance();

Field[] fields=bean.getDeclaredFields();

for(int i=0; i<i.length; i++){

field.setValue(user,request.getParameter(fileds[i].getName));

}

return user;

}


查看完整回答
反對 回復 2018-07-23
  • 3 回答
  • 0 關注
  • 2513 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號