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

instanceof如何在接口上工作

柯伟志
2023-03-14
问题内容

instanceof可用于测试对象是给定类的直接实例还是后代实例。instanceof即使接口不能像类一样实例化,也可以与接口一起使用。谁能解释instanceof工作原理?


问题答案:

首先,我们可以存储instances这样实现特定功能interfaceinterface reference variable类。

package com.test;

public class Test implements Testeable {

    public static void main(String[] args) {

        Testeable testeable = new Test();

        // OR

        Test test = new Test();

        if (testeable instanceof Testeable)
            System.out.println("instanceof succeeded");
        if (test instanceof Testeable)
            System.out.println("instanceof succeeded");
    }
}

interface Testeable {

}

即,任何实现特定接口的运行时实例都将通过instanceof测试

编辑

和输出

instanceof succeeded
instanceof succeeded

@RohitJain

您可以通过使用这样的匿名内部类来创建接口的实例

Runnable runnable = new Runnable() {

    public void run() {
        System.out.println("inside run");
    }
};

然后使用instanceof类似的运算符测试实例的类型为interface

System.out.println(runnable instanceof Runnable);

结果为“ true”



 类似资料:
  • 问题内容: 我正在研究Spring Core认证,并且对Spring如何处理JDBC查询有一些疑问: 因此,我知道可以根据希望获取的数据类型以多种方式从数据库表中获取数据: 1)查询 简单类型* (如int,long或String):我使用 jdbcTemplate 类的 queryForObject() 方法,类似这样: * 因此,要获取一个简单的对象作为int值,我使用 queryForObj

  • 最近我正在学习Java8个特性,所以我从lambda表达式开始,然后我遇到了Java流API,现在我正在尝试围绕流API中的方法,它们是如何工作的? 我对lambda表达式的理解是,如果我们想将lambda表达式传递给该方法,那么我们需要使用单个未实现的方法(Java 8接口可以有默认实现)创建一个与lambda表达式的签名匹配的接口。然后,传递lambda表达式的方法可以通过调用接口方法来执行l

  • 我正在学习Spring核心认证,我对Spring如何处理JDBC查询有一些疑问: 因此,为了获得一个作为int值的简单对象,我使用queryForObject()方法,将sql stattment和我期望从该方法接收的对象类型传递给它。 好的,这很简单,我认为这是可以的。 2)查询输入到Map对象中的整个表行:因此,如果我不需要单个值(可以在表的特定行的单个列中,或者类似前面的示例),我可以使用q

  • 我的Windows 8.1中有两个本地服务器,应用程序服务器和wampServer,通常可以通过在浏览器中键入localhost来访问应用程序服务器。wamp 服务器可通过本地主机访问:800 。所以我有两个数据库,一个来自应用服务器,另一个来自 WAMP . 现在我有MySQL工作台,我想连接到wampserver数据库,但当尝试使用主机名:localhost连接时,它只显示了appServer

  • 是模拟抽象类:,而是接口。这是失败点: 如何模拟这段代码?

  • 问题:尝试将 WAR 部署到 Glassfish 4.1.1 时,我不断收到以下 WELD 异常。应用程序在 Wildfly 9.0 上正确部署。 加载应用程序时出现异常:java.lang.IllegalStateException:ContainerBase。addChild:开始:org.apache.catalina。生命周期异常:org.apache.catalina。生命周期异常:or