我有一个Java类层次结构,层次结构的子树实现相同的静态数据和方法。我不能继承,因为它们都是静态的,但当我将相同的代码从一个类切换到另一个类时,它会闻到我的味道。我正在考虑的一件事是将公共位放在一个类中,然后为每个子类提供该类的静态实例。任何人都想过更好地解决这种情况(不使用泛型)?
答案 0 :(得分:0)
这听起来是正确的。只需要一类不可变的静态并直接在需要它的类中引用它们(调用是常量或类似的东西。你不应该创建一个实例来引用类上的静态对象 - 它们& #39;重新静止所以他们应该只存在"。
即
public class MyConstants{
public static final String MyConstantValue1 = "Billy";
public static final String MyConstantValue2 = "Sally";
}
public class SomeClass{
public void something(){
System.out.println(MyConstants.MyConstantValue1);
}
}
public class SomeSubClass extends SomeClass{
@override
public void something(){
System.out.println(MyConstants.MyConstantValue2);
}
}
答案 1 :(得分:0)
我的解决方案 我创建了一个单独的类,它实现了让我困扰的功能。 我给层次结构中的每个类都提供了自己的静态实例。是一种享受。