在界面内瞬态

时间:2012-09-02 04:24:33

标签: java interface

我有一个查询,下面是声明常量的接口,我可以在这里有瞬态,如果没有,那么我们不能在接口内部有瞬态变量的原因,我熟悉瞬态的作用序列化过程..

 interface OlympicMedal {
  static final String GOLD = "Gold";
  static final String SILVER = "Silver";
  static final String BRONZE = "Bronze";
}

4 个答案:

答案 0 :(得分:2)

我建议在界面中使用枚举而不是常量。您使用的模式在pre java 5代码中很常见。然后引入了枚举。它引入了类型安全性,是推荐的方式。

如果您正在进行序列化并希望获得瞬态属性,那么这可能有助于Serializing enums

答案 1 :(得分:1)

接口中定义的所有变量都是隐式的“静态”; “瞬态”只对非“静止”领域有意义:所以你要问的是没有意义的。

答案 2 :(得分:0)

接口中声明的所有变量都是publicstaticfinal。实际上,这些是Interface

中唯一可能的修饰符

出于同样的原因,当您在interface中创建变量时,您实际上不必明确指定这些修饰符。在你的例子中,你可以说:

interface OlympicMedal {
    String GOLD = "Gold";
    String SILVER = "Silver";
    String BRONZE = "Bronze";
}

答案 3 :(得分:0)

首先,接口仅根据实现该接口的类定义的操作提供合同。它不带状态,因此您不能在接口中声明成员变量(您在接口定义中声明的是常量)。因此,界面中不可能有临时成员。