如何解决如何从Java中的多个接口访问常量?
我有两个都使用这两个常量的接口
static final File UPLOAD_DIR = new File(System.getProperty("catalina.home") + File.separator + "uploads");
static final String UPLOAD_DIR_ABSOLUTE_PATH = UPLOAD_DIR.getAbsolutePath() + File.separator;
如何在不初始化两个接口的情况下访问它们?是否创建一个最顶层的接口(但是这两个接口不共享任何方法)?
解决方法
您可以这样做:
public interface MyConstants {
public static final File UPLOAD_DIR =
new File(System.getProperty("catalina.home") +
File.separator + "uploads");
public static final String UPLOAD_DIR_ABSOLUTE_PATH =
UPLOAD_DIR.getAbsolutePath() + File.separator;
}
public interface InterfaceA extends MyConstants {
...
}
public interface InterfaceB extends MyConstants {
...
}
public class Test implements InterfaceA,InterfaceB {
// Use UPLOAD_DIR
}
请注意,通过多个路由继承接口的常量声明是类的合法Java。
(是否在接口常量声明中使用修饰符是个人喜好或风格的问题。根据JLS,它们是隐含的 public
static
{{1 }};请参阅JLS 9.3。)
但是仅仅因为您可以做某事并不一定 意味着您应该这样做。有人认为将仅包含常量的接口声明为反模式。
阅读以下内容并下定决心:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。