反射修改属性,设计者为什么不直接弄成Class c = stu.getClass();c.set(stu,“name”,”tom”)?

感觉很别扭
Class c = stu.getClass();
Field nameField = c.getField("name");
nameField.set(stu, "tom");
为啥不写成下面这种:
Class c = stu.getClass();
c.set(stu,“name”,”tom”);

1个回答

如果基类和派生类各有一个同名的字段,用你的代码设置的是哪个,另一个用什么设置。
再来一个需求,让你得到这个字段的类型和访问修饰符,怎么做。再写两个函数吧,我猜你会这么想。那么所有的操作字段,函数,枚举,内置类,等等所有的函数全部都堆在class下了,多乱。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!