Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 接口内部的瞬态_Java_Interface - Fatal编程技术网

Java 接口内部的瞬态

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"; }

我有一个问题,下面是声明常量的接口,我可以在这里也有transient吗?如果没有,那么我们不能在接口内部有transient variable的原因是什么,我熟悉transient在序列化过程中的作用

 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”字段有意义:所以你所问的没有意义