Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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 - Fatal编程技术网

java中的标记接口到底是什么?

java中的标记接口到底是什么?,java,Java,标记接口是一个没有任何成员的接口。serializable就是一个例子 我们可以定义自己的标记接口吗。如果是,我们如何定义它的功能?但是它与JVM没有任何关系 interface MarkerInterface { } class MarkerInterfaceImpl implements MarkerInterface { ... } public class MarkerInterfaceDemo { public static void main(Strin

标记接口是一个没有任何成员的接口。serializable就是一个例子


我们可以定义自己的标记接口吗。如果是,我们如何定义它的功能?但是它与JVM没有任何关系

interface MarkerInterface { }

class MarkerInterfaceImpl implements MarkerInterface {
   ...      
}

public class MarkerInterfaceDemo {
    public static void main(String[] args){
        MarkerInterfaceImpl markerInterfaceImpl = new MarkerInterfaceImpl()[
        if(markerInterfaceImpl instanceOf MarkerInterface) {
           ...
        }
    }
}

为什么不呢?但是它与JVM没有任何关系

interface MarkerInterface { }

class MarkerInterfaceImpl implements MarkerInterface {
   ...      
}

public class MarkerInterfaceDemo {
    public static void main(String[] args){
        MarkerInterfaceImpl markerInterfaceImpl = new MarkerInterfaceImpl()[
        if(markerInterfaceImpl instanceOf MarkerInterface) {
           ...
        }
    }
}

Wikipedia文章中的提供了一种方法,可以将元数据与该语言不明确支持此类元数据的类相关联。例如类实现可序列化接口,以指示其非瞬态数据成员可以写入ObjectOutputStream。

Wikipedia文章提供了将元数据与该语言不明确支持此类元数据的类关联的方法。例如类实现可序列化接口以指示其非瞬态数据成员可以写入ObjectOutputStream。

如果仔细查看Java中的标记接口,例如可序列化、可克隆和远程接口,它们看起来是用来向编译器或JVM指示某些内容的。所以,若JVM看到一个类是可序列化的,它会对它执行一些特殊的操作,若JVM看到一个类是实现克隆的,它会执行一些操作来支持克隆。RMI和远程接口也是如此。在最简单的标记接口中,向编译器或JVM发出指示、信号或命令

->实际上,我们可以创建一个类似于marker接口的接口,其中没有方法声明,但它根本不是一个marker接口,因为它不向JVM发出指令,在我们的程序执行时为类提供一些特殊行为

例如:Serializable、Cloneable等是标记接口


当我的程序被执行时,JVM为实现了标记接口的类提供了一些特殊的功能。

如果您仔细查看Java中的标记接口,例如可序列化、可克隆和远程,看起来它们是用来向编译器或JVM指示某些内容的。所以,若JVM看到一个类是可序列化的,它会对它执行一些特殊的操作,若JVM看到一个类是实现克隆的,它会执行一些操作来支持克隆。RMI和远程接口也是如此。在最简单的标记接口中,向编译器或JVM发出指示、信号或命令

->实际上,我们可以创建一个类似于marker接口的接口,其中没有方法声明,但它根本不是一个marker接口,因为它不向JVM发出指令,在我们的程序执行时为类提供一些特殊行为

例如:Serializable、Cloneable等是标记接口


当我的程序被执行时,JVM为实现了标记接口的类提供了一些特殊的能力。

标记接口被用作标记,通知java编译器一条消息,以便它可以向实现它的类添加特殊行为。Java标记接口中没有成员。 Serializable是一个标记接口。实现该接口的类的含义类似于以某种方式通知java编译器有可能序列化该java类。 您可以创建自己的标记接口。只需创建一个接口,而无需在主体内部写入任何内容。
假设您已经创建了可编辑标记接口,并且创建了许多类,当一些程序员使用您的类时,这些类实现了这个可编辑标记接口,他会从javadoc中知道您的类是可编辑的。

标记接口被用作标记,通知java编译器一条消息,以便它可以向实现它的类添加特殊行为。Java标记接口中没有成员。 Serializable是一个标记接口。实现该接口的类的含义类似于以某种方式通知java编译器有可能序列化该java类。 您可以创建自己的标记接口。只需创建一个接口,而无需在主体内部写入任何内容。
假设您已经创建了可编辑标记接口,并且创建了许多类,当一些程序员使用您的类时,这些类实现了这个可编辑标记接口,他会从javadoc中知道您的类是可编辑的。

标记接口被用作标记,通知java编译器一条消息,以便它可以向实现它的类添加特殊行为

Java标记接口中没有成员

前。 1.java.io.Serializable是标记接口

java.lang.Cloneable
Marker接口用作标记,用于向java编译器通知消息,以便它可以向实现它的类添加特殊行为

Java标记接口中没有成员

前。 1.java.io.Serializable是标记接口

java.lang.Cloneable
如果底层服务器或容器在运行时为其实现类提供功能称为marker interface,则所有空接口都不是marker interface。。 例如,可运行接口 运行向其实现类线程提供功能的方法。
Runnable与marker接口一样都是功能性的。

所有空接口都不是marker接口…如果在运行时向其实现类提供功能的底层服务器或容器称为marker接口。。 例如,可运行接口 运行向其实现类线程提供功能的方法。
Runnable是功能性的,也是标记接口。

只要编译器不抱怨,您就可以自由定义任何内容?只要编译器不抱怨,您就可以自由定义任何内容?