【问题标题】:Java - Check if an object (class) implements an interface [duplicate]Java - 检查对象(类)是否实现接口[重复]
【发布时间】:2013-05-16 11:21:48
【问题描述】:

我正在尝试检查一个对象是否在 Java 中实现了一个接口(如果该对象的该类实现了该接口)。

我该怎么做?

我看到你可以这样做.getClass().getInterfaces(),但这给了我一个数组,我需要搜索那个数组,但是我用什么来检查呢?

【问题讨论】:

  • 当您提出问题时,只需输入您的标题,SO 界面就会向您显示与其相关的现有问题列表。上面提到的The question assylias, myself, and others该列表中的第二位。既然答案已经有了,何必再问这个问题呢?
  • 这个问题不值得被如此低估......
  • @assylias:有些人将“……没有表现出研究努力……”解释为包括在他们提问时不费心查看类似问题的列表。 (无论好坏……)
  • 我猜 OP 想知道一个类是否实现了接口。就像他使用任何 API 中的类 A 一样,他想知道 A 是否实现了任何接口。对于 OP -> 您应该为此目的研究文档
  • @T.J.Crowder 是的,我知道,但对于新用户来说,这并不明显——您的评论比连续投票更有用。

标签: java reflection


【解决方案1】:

如果您需要知道实例foo 是否属于实现给定接口的类,您可以使用instanceof

if (foo instanceof TheInterface)

【讨论】:

    【解决方案2】:

    您可以在 Java 中使用 instanceof 运算符。 JLS 说,

    在运行时,如果 RelationalExpression 的值不为 null,并且可以将引用强制转换为 ReferenceType 而不会引发 ClassCastException,则 instanceof 运算符的结果为真。

    instanceof 运算符是一个二元运算符,用于测试对象(实例)是否是给定类型的子类型。

    // checks if bar object's class implements SomeInterface
    if (bar instanceof SomeInterface)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-06
      • 1970-01-01
      • 2012-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多