Getting and Setting Field Values

本系列翻译自Oracle官方教程,半翻译,半读后感性质。文末会附上原文链接。

开篇首先强调可以通过反射来设置字段的值,但不属于常规操作。因为违反了类的设计哲学(如果直接操作private字段,还要getset方法干嘛)。最后再次声明,这种操作需要极其谨慎(utmost discretion)。

接下来以Book类为例,介绍了如何操作longarrayenum

最后,再次强调,通过反射来给字段赋值在性能上也不推荐。例如,需要在运行时额外检验字段的访问权限。同时可能会导致一些运行时的优化手段失效。

int x = 1;
x = 2;
x = 3;

这段代码极有可能被JVM优化,但是通过Field.set*()就未必了。

原文链接:Getting and Setting Field Values

推荐阅读更多精彩内容

  • 【柚子企稳后倾向于箱形整理】柚子EOS日线下探后反弹企稳,在2.3美元处企稳倾向于反弹至箱顶3美元。而3美元有较大...
    上校阻击手阅读 117评论 1 2
  • 夜幕弥漫,车在城市里穿梭,音乐顺着车窗溜进耳朵,思绪沿着路灯的影子奔驰着,不知方向。 不知不觉,淡淡的哀愁便伴着朦...
    窗格上的阳光阅读 92评论 0 1
  • 今天下午跟秋做能量疗愈交换,她先帮我做,她的双手放在枕骨时我感到很平和,一会儿我感到双侧颞骨处很多能量要往外冒,我...
    爱若嘉阅读 319评论 1 2
  • 有时候,成长是一瞬间的事,这话着实正确。 而有时候,老去是一瞬间的事,这话也不假。 ...
    桨小嗯阅读 435评论 0 0