java 通过字符串去对象寻找与字符串值相同名字的属性

如题,我在这定义一个User的对象publicclassUser{StringuserId;StringuserName;}然后我再写个接口,对方传过来的是两个参数,第一... 如题,我在这定义一个User的对象
public class User
{
String userId;
String userName;
}
然后我再写个接口,对方传过来的是两个参数,
第一个参数field,放的值是userId,
第二个是keyWord,放的值是123,
然后我new一个对象,
User user=new User();
这样,我怎么用第一个参数去对应到user里面的userId属性,然后把keyWord里面的123赋值到user的userId,
user.userId=123;这种的不用说,
其实我的目的就是通过传来的字符串去找到新new出对象的属性,然后赋值,只能是动态的赋值
展开
 我来答
钱苏联方块
2017-09-01 · TA获得超过147个赞
知道小有建树答主
回答量:91
采纳率:0%
帮助的人:88万
展开全部

通过java的反射可以实现,代码:

public class User {
    String userId;
    String userName;
    public static void main(String[] args) {
        User u = new User();
        u.set("userId", "001");
        u.set("userName", "xiaoming");
        System.out.println(u);//User{userId='001', userName='xiaoming'}
    }
    public void set(String field, Object keyWord) {
        try {
            Field f = getClass().getDeclaredField(field);
            f.setAccessible(true);
            f.set(this, keyWord);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    @Override
    public String toString() {
        return "User{" + "userId='" + userId + '\'' + ", userName='" + userName + '\'' + '}';
    }
}

有问题请追问

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式