假设2种不同的方法 - 一种是静态的,一种是非静态的 - 需要一个实例变量。Java/C的类内实例变量的使用情况#
该变量在方法中使用3-5次不同时间进行比较。
变量不会以任何方式更改。
此外,变量的类型 - String,Colection,Collection等在编码方式上有所不同。
在私有方法(静态和非静态)中使用实例变量的最佳/正确方法是什么?
- 通作为方法参数
- 本地存储利用该方法来获取值 - this.getClaimPropertyVertices();
- 通过获取值本地存储 - this.claimPropertyVertices;
- 在方法
直接使用实例变量当创建一个局部变量来存储值将“最终”关键字提供任何优势,如果变量将不被改变。
编辑1:根据评论,我添加其他信息 该值不能在方法中本地创建。它必须来自班级或其他访问类的方法。
基于回答的我的解决方案:
基于@EricJ的回答。和@Jodrell。我选择了1,并将其创建为私有静态方法。我还发现一些细节here来支持这一点。
静态方法无法访问实例字段,句点。 –
它确实取决于使用变量的方法的上下文。将价值传入或可以在本地创建是否有意义?不知道方法的背景,很难回答这些问题。另外...这味道像早期的微型优化... eeeeeviiiillllll。而一个静态方法只能访问一个静态变量。 –
@MattBall谢谢。我从来没有这样做过,但想要这样做,以便我能够了解/了解是否会有差异 –