2

我正在浏览代码,其中我发现一个接口用于常量声明,但我在接口中发现的东西如下所示..

public interface abcConstants extends Serializable
 {

int def = 4;
int efg = 7;

}

请让我知道这是正确的,因为我的知识常量也应该有 publis static final ..!!

4

3 回答 3

5

接口中所有声明的变量都是public static final.

接口中的方法是public abstract.

在接口中的变量或方法前面添加上述关键字是多余的,但可能有助于阅读代码。

于 2012-09-14T12:28:38.577 回答
1

JLS#9.3。字段(常量)声明

接口主体中的每个字段声明都是隐式公共的、静态的和最终的。允许为这些字段冗余地指定任何或所有这些修饰符。

你应该如何避免使用interface for constant declaration and Define enum instead.

于 2012-09-14T12:29:24.347 回答
0

默认情况下,接口内声明的变量是public static final。你不需要明确地标记它们。并且接口中声明的所有方法默认都标记为公共抽象,所以,..

public interface abcConstants extends Serializable
{

int def = 4;
int efg = 7;

}

相当于

public interface abcConstants extends Serializable
{

public static final int def = 4;
public static final int efg = 7;

}
于 2012-09-14T12:53:14.493 回答