Getting and Setting Field Values

2019-04-10  本文已影响0人  日更专用小马甲

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

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

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

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

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

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

原文链接:Getting and Setting Field Values

上一篇下一篇

猜你喜欢

热点阅读