java - 静态方法中的默认变量
问题描述
我有一个方法(例如 helpMethod)出现在我的许多项目类中,并使用所有这些类中存在的变量(例如 xVar)作为私有类属性执行某些操作。我想在默认类中将此方法设为静态并从那里使用它。是否可以避免将 xVar 作为参数传递给静态实现?
就像是:
class helpClass {
static void helpMethod() {
return ++xVar;
}
}
class demoClass {
private int xVar = 0;
int addToXVar() {
helpClass.helpMethod();
}
}
代替:
class helpClass {
static void helpMethod(int xVar) {
return ++xVar;
}
}
class demoClass {
private int xVar = 0;
int addToXVar() {
helpClass.helpMethod(xVar);
}
}
解决方案
为了避免传递对 demoClass 的引用,您可以做的是使用超类。
class helpClass {
protected int xVar = 0;
void helpMethod() {
++xVar;
}
}
class demoClass extends helpClass {
int addToXVar() {
helpMethod();
}
}
或者您可以使用 Java 8+ 中的接口
interface helper {
int getXVar();
void setXVar(int xVar);
default void helpMethod() {
setXVar(1 + getXVar());
}
}
class demoClass implements helpClass {
private int xVar = 0;
int addToXVar() {
helpMethod();
}
public int getXVar() { return xVar; }
public void setXVar(int xVar) { this.xVar = xVar; }
}
推荐阅读
- c++ - 断言意图:assert(!distNodePt == !indexNodePt)
- python - Django 3 - NoReverseMatch
- html - 如何为表单中的单选按钮提供自定义外观?
- javascript - 如何在 react.js 中使用 onclick 事件处理程序调用类组件
- c++ - QTime 在 linux 和 windows 平台上表现不同
- kotlin - ALTER TABLE 迁移不会更新生成的代码
- itext7 - Itext7 - 如何使用java中的图像创建每页2列4行的pdf
- grpc - 如何取消 GRPC 流式调用?
- visual-studio - 在“应用程序”类型中找不到属性“退出”
- python - 修改二维数组中的备用索引值 - Python