当前位置: 首页 > 面试题库 >

没有方法的接口

齐志勇
2023-03-14
问题内容

为什么Java引入一些没有定义方法的接口?例如CloneableSerializableType等等。

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


问题答案:

为什么Java引入一些没有定义方法的html" target="_blank">接口?

这称为标记或标记接口。这些不用于任何用途或操作。这些方法用于标记或标记类。这样就可以确定someclass是否是这些类的子级。

关于第二个问题

如果仔细观察,您会看到声明为

 private static native void registerNatives();

因此registerNatives是本机方法。

那么什么是本机方法。如果您看到这样的问题

该方法以“本机”代码实现。即,无法在JVM中运行的代码。它通常用C或C ++编写。

本机方法通常用于与以其他编程语言编写的系统调用或库进行接口。

因此,这些方法是从本机代码加载的。因此,您无需声明方法的主体,但它们仍然不是抽象的,因为它们是通过本机代码实现的。



 类似资料:
  • 问题内容: 目前我有这样的事情 main.go 还有我的工作包 和 我正在传递给NewJob的函数是在goroutine上每2秒执行一次,但是我想访问我传递的匿名结构…但是当我尝试访问时 编号 我越来越 t.Id未定义(类型interface {}是没有方法的接口) 但是打印t给我预期的结果 {1} 问题答案: 您必须先将其声明为兼容类型,然后才能访问其字段。

  • 错误: java.lang.nosuchmethoderror:类lcom/google/android/gms/iid/zzd中没有直接方法(landroid/content/context;)V;或其超级类(“com.google.android.gms.iid.zzd”的声明出现在/data/app/com.app-1/base.apk:classes33.dex中)的com.google.

  • 问题内容: 首先,我阅读了埃里克森对“为什么不能在Java接口中定义静态方法?”的有用答复。。这个问题不是关于“为什么”的问题,而是关于“然后如何做”的问题。 编辑:我的原始示例不适当地,但我将其保留在下面。 虽然我现在确信在大多数情况下我想做的是过度矫kill过正,但在一种情况下可能需要这样做: 我再举一个例子。现在,让我们采用一个适合于查找表的复杂功能,例如Bessel函数。这必须进行初始化,

  • 问题内容: 我们天真地决定,我们应该将许多库从两年的1.12.0-betas更新到不错的新版本1.20.0。例如:我们将google-http- client-1.12.0-beta.jar更新为google-http-client-android-1.20.0.jar。 当我们执行以下代码时: 我们得到这个惊人的错误报告: 有人知道如何解释吗?我们肯定不会! 问题答案: 这仅意味着带有特定参数列

  • null null 完整错误消息:类landroid/support/test/internal/runner/tracker/usageTracker中没有接口方法trackUsage(ljava/lang/string;)V;或其超类(“Android.support.test.internal.runner.tracker.UsageTracker”的声明出现在/data/app/AdamH

  • 我有下面的课 > 我应该在EmailManager上方添加什么注释?@Spy@Mock还是@Autow的? 如何告诉Mockito不要执行getImageLocation(getEmailContent正在调用的方法)并且总是返回而不是“new location”?我看了很多文章,搞不清“什么时候”“存根”“退货”