java - 没有方法的接口(interface)

原文 标签 java class interface java-native-interface

为什么Java引入了一些没有定义方法的接口(interface)?例如 Cloneable , Serializable , Type还有很多。

第二件事:在Class.class包定义了一种方法 registerNatives()没有主体并从静态 block 中调用,但 Class.class不是抽象的,而是 final .为什么这样?
为什么 Java 需要一些没有主体的方法从静态 block 中调用。?

最佳答案

Why do Java introduces some interface which has no methods defined in it?



这被称为 Tagged or Marker interface .这些不用于任何用途或操作。这些方法用于标记或标记一个类。这样您就可以确定 someclass 是否是这些类的子类。

about the second question



如果你仔细观察,你可以看到声明是
 private static native void registerNatives();

所以registerNatives是 native 方法。

那么什么是本地方法。如果您看到 this so question

The method is implemented in "native" code. That is, code that does not run in the JVM. It's typically written in C or C++.

Native methods are usually used to interface with system calls or libraries written in other programming languages.



所以这些方法是从 native 代码加载的。因此,您不需要声明方法的主体,但它们仍然不是抽象的,因为它们的实现来自 native 代码。

关于java - 没有方法的接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20878039/

相关文章:

c++ - 如何正确地创建带有Templetad数组的类对象?

java - Jersey REST/JAXB 错误,映射接口(interface)

java - @ManyToMany没有连接表(旧数据库)

java - 如何在同一台机器上运行多个 Selenium 测试套件

C++ 变量有初始值设定项但类型不完整?

java - 如何将泛型接口(interface)实现为非泛型类 Java

java - 接口(interface)是 Java 8 中实用程序类的有效替代品吗?

java - 组间最后一个值的总和

java - JsonPath 忽略输出上的调试日志

c++ - 不同的 C++ 类声明