我对Java很新,我不明白这个结构是什么。我知道什么是接口以及如何定义,但在这种情况下,我真的不知道。你能告诉我们是什么意思吗?
public interface WebConstants {
public interface Framework {
String ACTION = "action";
}
public interface Look {
String LIST_CONT = "list.cont";
}
}
答案 0 :(得分:1)
界面内的每个字段都是隐式的public,static和final。在这种情况下,WebConstants
声明了一个内部接口(public,static和final)Framework
和(public,static和final)Look
,它们也有一些(public,static和final) )字符串字段。
这是一种(非常常见的)在代码中对常量进行排序的方法,您可以输入以下结构:
String action = WebConstants.Framework.ACTION;
String list = WebConstants.Look.LIST_CONT;
这样做的好处是,因为WebConstants
是一个界面,所以你不能意外地将其设置为
答案 1 :(得分:1)
如果您正在考虑使用类似的解决方案,您可能需要查看枚举:
public enum WebConstants
{
ACTION("action"), LIST_COUNT("list.count");
private String display;
private WebConstants(String display)
{
this.display = display;
}
public String getDisplay()
{
return display;
}
}
所以你可以用它来调用WebConstants.ACTION.getDisplay()。
拥有一个常量接口对我来说没有任何意义。更好的做事方式可能是使用抽象访问器方法。
public interface ActionAware
{
public String getAction();
}
public interface ListCountAware
{
public String getListCount();
}
public abstract class AbstractUseCase implements ActionAware, ListCountAware
{
public void doSomething()
{
String action = getAction();
String listCount = getListCount();
}
}
public final class SpecificUseCase extends AbstractUseCase
{
public final static String ACTION = "specific.action";
public final static String LIST_COUNT = "specific.list.count";
public String getListCount()
{
return LIST_COUNT;
}
public String getAction()
{
return ACTION;
}
// other methods
}