不用setter方法,改变对象的属性值

lixiyuyu 2017-08-01 07:45:52
有一个student类,内有name,age两个属性
有List<Student> list=stuService.getStu();取一个student的集合
现在我想改变list.get(i)中的某个属性(name/age,不确定具体是哪个属性)的值,该怎么做
因为不确定,所以不能用setter方法
...全文
366 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
走在四季 2017-08-04
  • 打赏
  • 举报
回复
路过,表示关注,软件行业真是能遇到各种奇葩需求。。
evanweng 2017-08-04
  • 打赏
  • 举报
回复
没规则说个鸡毛,看半天不知道你要干什么
爱码儿 2017-08-02
  • 打赏
  • 举报
回复
10楼的方法貌似可行,但是如果是有多个Integer或多个String类型的属性呢?
Bonsour 2017-08-02
  • 打赏
  • 举报
回复
看上上面的回答,没有一个人回答是靠谱的。 这种形式,最好的方式是: 在Student类中提供一个方法用来修改这两个值的其中一个。因为你不确定修改的是哪一个,这句话翻译过来就是,你拿过来准备修改的这个值,有可能是name也有可能是age,它是动态获取的,你可以人为的判断出来它要修改name还是age,对吧,比如你拿到的这个值类型是int类型,那就修改age,如果拿到的是String类型,那就修改name。那么你的Student中的这个方法就可以这样来定义: public void setOne(Object source) { if (source instanceof Integer) { setAge(source); } if (source instanceof String) { setName(source); } } 你要修改值,就调用这个方法。上面只是我的一个举例,具体实现细节,你根据你的需求自己决定。思路就是在Student中提供一个修改不确定的属性的方法。
wautsns 2017-08-02
  • 打赏
  • 举报
回复
引用 8 楼 lixiyuyu 的回复:
我简化了问题,实际有很多属性
就算是很多属性,判断合法性也要一个属性一个属性if吧。不然怎么判断不合法。
丨蒋天丨 2017-08-02
  • 打赏
  • 举报
回复
根据业务自有一套判断的规则,楼主你将规则放出来瞅瞅
lixiyuyu 2017-08-01
  • 打赏
  • 举报
回复
引用 7 楼 phantom7493 的回复:
[quote=引用 6 楼 phantom7493 的回复:] [quote=引用 5 楼 lixiyuyu 的回复:] 就是拿到了一个list,遍历之后发现某些数据不合规范,需要重新设置值
见代码

if(list.get(i).getAge() < 0)//当判断出不合规范的时候不就确定是哪个属性了吗。
    list.get(i).setAge() = 18;
[/quote] 傻了,list.get(i).setAge(18);[/quote] 我简化了问题,实际有很多属性
wautsns 2017-08-01
  • 打赏
  • 举报
回复
引用 6 楼 phantom7493 的回复:
[quote=引用 5 楼 lixiyuyu 的回复:] 就是拿到了一个list,遍历之后发现某些数据不合规范,需要重新设置值
见代码

if(list.get(i).getAge() < 0)//当判断出不合规范的时候不就确定是哪个属性了吗。
    list.get(i).setAge() = 18;
[/quote] 傻了,list.get(i).setAge(18);
wautsns 2017-08-01
  • 打赏
  • 举报
回复
引用 5 楼 lixiyuyu 的回复:
就是拿到了一个list,遍历之后发现某些数据不合规范,需要重新设置值
见代码

if(list.get(i).getAge() < 0)//当判断出不合规范的时候不就确定是哪个属性了吗。
    list.get(i).setAge() = 18;
lixiyuyu 2017-08-01
  • 打赏
  • 举报
回复
引用 4 楼 phantom7493 的回复:
[quote=引用 3 楼 lixiyuyu 的回复:] 对反射不是很熟悉,能再具体点 吗
反射我是看到标题回的,没理解你所说的那种情况。[/quote] 就是拿到了一个list,遍历之后发现某些数据不合规范,需要重新设置值
wautsns 2017-08-01
  • 打赏
  • 举报
回复
引用 3 楼 lixiyuyu 的回复:
对反射不是很熟悉,能再具体点 吗
反射我是看到标题回的,没理解你所说的那种情况。
lixiyuyu 2017-08-01
  • 打赏
  • 举报
回复
引用 1 楼 phantom7493 的回复:
那就通过反射来弄。
对反射不是很熟悉,能再具体点 吗
wautsns 2017-08-01
  • 打赏
  • 举报
回复
不过你的问题很奇怪啊,什么样的需求会变成你这种情况。
wautsns 2017-08-01
  • 打赏
  • 举报
回复
那就通过反射来弄。

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧