java - 在 Java 中不使用外部类的内部类有什么问题?

标签 java static-analysis

我在 Eclipse 中使用静态分析器来检查我的代码。一个类 foo 有一个内部类 bar。我收到以下错误:

JAVA0043 Inner class 'bar' does not use outer class 'foo'

为什么这是一个错误?只要外部类使用内部类,还不足以使此信息隐藏有用且正确吗?

内部类不是静态的。

最佳答案

看起来像 Enerjy Error :

// Incorrect
class Log {
  // Position never uses the enclosing Log instance,
  // so it should be static
  class Position {
    private int line;
    private int column;
    Position(int line, int column) {
      this.line = line;
      this.column = column;
    }
  }
}

不使用任何外部类的任何实例变量或方法的嵌套类可以声明为静态
这减少了两个类之间的依赖性,从而增强了可读性和可维护性。

// Correct
class Log {
  static class Position {
    private int line;
    private int column;
    Position(int line, int column) {
      this.line = line;
      this.column = column;
    }
  }
}

关于java - 在 Java 中不使用外部类的内部类有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1132930/

相关文章:

java - 如何让 Ruby 为 SHA256 生成的 HMAC 是安全的,可以匹配 Java?

java - 包含其他对象的对象的 OOP 最佳实践

java - 我是否需要将我的 Java 应用程序转换为小程序才能将其发布到网页上?

c - 识别编译器产生的汇编程序中的某些组件

shell - 如何对可移植 POSIX shell 脚本进行语法检查?

java - 找出一种方法是否可以调用另一种方法

java - 计算大数的百分比

java - 当我只需要一个 JPanel 时制作两个 JPanel

c - Polyspace 警告系统函数使用系统定义的参数标志

MATLAB代码分析和可视化工具?