Java 接口内部的瞬态
我有一个问题,下面是声明常量的接口,我可以在这里也有transient吗?如果没有,那么我们不能在接口内部有transient variable的原因是什么,我熟悉transient在序列化过程中的作用Java 接口内部的瞬态,java,interface,Java,Interface,我有一个问题,下面是声明常量的接口,我可以在这里也有transient吗?如果没有,那么我们不能在接口内部有transient variable的原因是什么,我熟悉transient在序列化过程中的作用 interface OlympicMedal { static final String GOLD = "Gold"; static final String SILVER = "Silver"; static final String BRONZE = "Bronze"; }
interface OlympicMedal {
static final String GOLD = "Gold";
static final String SILVER = "Silver";
static final String BRONZE = "Bronze";
}
接口中声明的所有变量都是
public
、static
和final
。事实上,这些是接口中唯一可能的修饰符
出于同样的原因,在接口
中创建变量时,实际上不必显式指定这些修饰符。在你的例子中,你可以说:
interface OlympicMedal {
String GOLD = "Gold";
String SILVER = "Silver";
String BRONZE = "Bronze";
}
接口中声明的所有变量都是public
、static
和final
。事实上,这些是接口中唯一可能的修饰符
出于同样的原因,在接口
中创建变量时,实际上不必显式指定这些修饰符。在你的例子中,你可以说:
interface OlympicMedal {
String GOLD = "Gold";
String SILVER = "Silver";
String BRONZE = "Bronze";
}
首先,接口只提供了一个由实现该接口的类定义的操作方面的契约。它不携带状态,因此不能在接口中声明成员变量(在接口定义中声明的是常量)。因此,接口中不可能有临时成员。首先,接口只提供了一个由实现该接口的类定义的操作的契约。它不携带状态,因此不能在接口中声明成员变量(在接口定义中声明的是常量)。因此,接口中不可能存在临时成员。我建议在接口中使用枚举而不是常量。您使用的模式在Java5之前的代码中很常见。然后介绍了枚举。它引入了类型安全性,是推荐的方法
如果您正在序列化并且需要瞬态属性,那么这可能会有所帮助。我建议在接口中使用枚举而不是常量。您使用的模式在Java5之前的代码中很常见。然后介绍了枚举。它引入了类型安全性,是推荐的方法
如果您正在序列化并且需要瞬态属性,那么这可能会有帮助接口中定义的所有变量都隐式地是“静态的”“transient”仅对非“static”字段有意义:因此您所问的没有意义。接口中定义的所有变量都隐式地为“static”“transient”只对非“static”字段有意义:所以你所问的没有意义