用了java很长时间,不过这个问题一直想问,很多人都说不使用,public field,转而使用getter 和setter替代,除了可以对客户隐藏实现以外,还有什么其他好处?
我说一点吧
因为java的代理不管是cglib还是jdk proxy,都是代理的方法
没有代理属性这样的功能,代理方法能做到一些特殊处理
比如说hibernate的延迟加载了,其实就是代理了get set,来做到的
javabean规范!
java反射对于域的访问要比方法访问慢的多。当然也有规范的原因。