我有一个类 -->
public class Machine
这里我声明了一个静态内部类 -->
public static class Parts
我在静态内部类中声明了两个静态方法 -->
public static void engine()
public static void battery()
现在我想从我的主类App中访问方法。我正在使用Eclipse IDE。我做了以下操作 -
Machine.Parts machine = new Machine.Parts();
machine.engine();
machine.battery();
Eclipse让我这么做。但是它会给出警告:
应该以静态方式访问类型Machine.Parts的静态方法engine
应该以静态方式访问类型Machine.Parts的静态方法engine
如何解决这个问题?
我已经尝试过谷歌搜索和Stack Overflow之前的问题,但是我无法找到解决方案。
我的代码 -
Machine.java -->
package demo28;
public class Machine {
public static class Parts {
public static void engine() {
System.out.println("Machine engine is running");
}
public static void battery() {
System.out.println("Machine battery is charging");
}
}
}
App.java -->
package demo28;
public class App {
public static void main(String[] args) {
run(new Machine.Parts());
}
public static void run(Machine.Parts machine) {
machine.engine();
machine.battery();
System.out.println();
}
}
输出 -->
机器引擎正在运行
机器电池正在充电
期望结果 --> 没有警告
实际结果 --> 收到警告
Machine.Parts.engine()
(您直接在类上调用方法,而不是在类的实例上调用)。 - ArnaudMachine.Parts.engine()
是访问它们的正常方式,尽管不是必需的。警告只是为了让您检查设计,因为您当前正在以“非标准”的方式使用代码。 - Zephyr