众所周知,Python类不能拥有真正的私有成员.该不可─ 因为这-obvious含义是,Java类私处被公开于Jython的.(隐藏你的下体,Java!)
因此,当使用Jython并访问通常通过getter和setter暴露给其他Java类的Java类私有时,您是否还想使用这些方法?或者你直接访问私人?
更恰当的问题是,你应该使用getter和setter吗?如果这些方法存在副作用,那么答案肯定是'是',但是如果方法就在那里,因为有人认为在任何地方放置吸气剂和定位器是正确的事情(IMO不是,只是制造那该死的东西是公开的),那么有没有理由为Java的所有额外仪式而烦恼?
虽然Jython可以从任何地方访问非公共Java成员,但这是一个必须明确启用的功能.仅此一点就足以让我尊重Java类的可见性,否则您将面临我的机器问题的风险.
更主要的是,你应该为不受你控制的类使用提供的属性访问器,除非你有充分的理由不这样做:你永远不知道这个类的未来版本是否会比getter/setters中的最小版本更多.
Jython具有隐藏JavaBean属性的访问器方法的优点.Jython转换 x.foo += 5成x.setFoo(x.getFoo() + 5.因为通常属性的支持字段与属性本身具有相同的名称,所以您可能会将此功能与"Jython使支持字段可访问"混淆,即使它没有.我肯定会使用Jython的这种属性访问类似字段的语法:它使您的代码更简洁,更易于阅读.
| 归档时间: |
|
| 查看次数: |
532 次 |
| 最近记录: |