我有一个接口父类,我们在这里称之为
IParent
。有两个子类实现了这个接口ChildA
和ChildB
。 ChildA
还扩展了另一个类OtherClass
。
public interface IParent{
@Value("${car.color:blue}")
public final String color = "blue";
public int doSomething();
}
public class ChildA extends OtherClass implements IParent{
public int doSomething();
}
public class ChildB implements IParent{
public int doSomething();
}
我想在我的应用程序中使用
iParent.color
,但我希望从设置文件中读取color
,因为该变量在界面中是最终的,因此不起作用。我无法将其移至派生类的原因是因为我不希望在使用派生类的地方进行类型转换。知道如何让它发挥作用吗?
由于 Spring 中的属性(来自 yaml 或属性文件)已加载到系统属性中,因此您可以执行以下操作:
public interface IParent{
public final String color = System.getProperty("car.color");
public int doSomething();
}