我有一个查询,下面是声明常量的接口,我可以在这里有瞬态,如果没有,那么我们不能在接口内部有瞬态变量的原因,我熟悉瞬态的作用序列化过程..
interface OlympicMedal {
static final String GOLD = "Gold";
static final String SILVER = "Silver";
static final String BRONZE = "Bronze";
}
答案 0 :(得分:2)
我建议在界面中使用枚举而不是常量。您使用的模式在pre java 5代码中很常见。然后引入了枚举。它引入了类型安全性,是推荐的方式。
如果您正在进行序列化并希望获得瞬态属性,那么这可能有助于Serializing enums
答案 1 :(得分:1)
接口中定义的所有变量都是隐式的“静态”; “瞬态”只对非“静止”领域有意义:所以你要问的是没有意义的。
答案 2 :(得分:0)
接口中声明的所有变量都是public
,static
和final
。实际上,这些是Interface
出于同样的原因,当您在interface
中创建变量时,您实际上不必明确指定这些修饰符。在你的例子中,你可以说:
interface OlympicMedal {
String GOLD = "Gold";
String SILVER = "Silver";
String BRONZE = "Bronze";
}
答案 3 :(得分:0)
首先,接口仅根据实现该接口的类定义的操作提供合同。它不带状态,因此您不能在接口中声明成员变量(您在接口定义中声明的是常量)。因此,界面中不可能有临时成员。