Java 抽象中未初始化的常量 class

Java uninitialised constants in an abstract class

我正在写摘要class。扩展这个 class 的 classes 将始终使用常量 A_CONSTANT,但是 A_CONSTANT 的值对于每个子 class 是不同的。 subclasses 也将实现方法useConstant。此实现对于每个子 class 都是相同的,除了 A_CONSTANT 的值会有所不同。最好我想在摘要 class 中实现 useConstant,但会产生错误,因为 A_CONSTANT 尚未在摘要 class.

中初始化
public abstract class AbstractClass {

   public static final int A_CONSTANT;

   public void useConstant(int value) {
      if (value > A_CONSTANT)
         // do something
   }

}

有什么办法解决这个问题,还是我必须在每个子 class 中提供 useConstant 的实现?

你可以有一个抽象方法getConstant,那么所有的子类都必须实现它