Java:接口是否可以包含在其中定义的常量变量?

Java:接口是否可以包含在其中定义的常量变量?

问题描述:

我可以在界面中创建public static final变量吗?我可以保留这些文件中定义的常用常量值吗?Java:接口是否可以包含在其中定义的常量变量?

+0

这不是简单的*尝试*?你确实有一个工作的编译器,对吧? – 2010-10-25 06:01:28

+0

我很抱歉,我必须改述。我已经尝试过,它的工作原理。但我更想知道这是否是一种好的做法。 – kiki 2010-10-25 06:03:07

+0

可能重复的[应该将一个常量集合放在一个类或接口?](http://*.com/questions/1372991/should-a-collection-of-constants-be-placed-in-a-类或接口) – 2010-10-25 06:05:19

是的,你可以:

public interface Constants 
{ 
    public static final int ZERO = 0; 
} 

然而,这是一般估摸不会是一个好主意,这些天。如果接口有一个真正的目的以及,并且这些常量很可能被大多数实现使用,但它引入一个接口只是以便更容易获得常量是一种滥用接口的目的,真的。 (这是以前发生的事情。)

+0

那么解决方案是什么?定义另一个类来定义这些常量? – kiki 2010-10-25 06:01:27

+0

@kiki:这取决于情况。有时枚举工作得很好,而不是常量。有时让他们进入自然界的界面就像其他任何东西一样干净。有时候只是让他们最强烈地关注与他们有关的班级。有时创建一个新班级。 – 2010-10-25 06:02:51

+1

如果您仅实现接口以避免将接口名称加上前缀。 – 2010-10-25 06:03:35

是的,你可以在接口中保持常量。顺便说一句,它被认为不是很好的做法。

当然,public常量可以在接口中声明。但是,有一件事,如果你的接口只是常量的占位符,可以用enum代替