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

“ instanceof”的示例

翟永春
2023-03-14
问题内容
public class TableModel2 extends TableModel1 { ... }

TableModel2 tableModel = new TableModel2();

boolean t1 = tableModel instanceof TableModel1;
boolean t2 = tableModel instanceof TableModel2;

在上面的示例中,t1t2true。那么,我该如何区分TableModel1TableModel2使用instanceof


问题答案:
boolean t2 = tableModel.getClass().equals(TableModel1.class); //False
boolean t2 = tableModel.getClass().equals(TableModel2.class); //True


 类似资料:
  • 由于编译器使用类型擦除,因此运行时不跟踪类型参数,因此在运行时无法使用instanceOf运算符验证Box 和Box 之间的差异。 Box<Integer> integerBox = new Box<Integer>(); //Compiler Error: //Cannot perform instanceof check against //parameterized type Box<In

  • 问题内容: 有没有办法找到泛型的类类型? 以上内容绝对无法编译。 问题答案: 泛型是编译时功能。泛型在编译时添加检查,这在运行时可能没有任何意义。这是一个例子。您只能检查所引用对象的类型,它可能是代码中的超级类型。如果要传递类型T,则必须明确地执行此操作。 要么 注意:类型可能不相同,

  • 问题内容: 我看到使用和运算符超过运算符时性能有所提高。 有没有使用或使用的指南? 给定一个场景:我知道要匹配的确切类,即,(这些是最终类),等等。 使用操作员的做法不好吗? 问题答案: 和表现不同的原因是他们在做不同的事情。 测试左侧对象引用(LHS)是右侧类型(RHS)的实例 还是某个子类型 。 测试类型是否相同。 因此,建议您忽略性能问题,并使用可为您提供所需答案的替代方法。 使用操作员是不

  • 问题内容: 我有以下表达: …其中元素类型为: 是否可以在过滤器之前检查类型? 问题答案: 您可以应用另一个以仅保留实例,并添加一个将为您节省以后的转换: 或者,正如Holger所说,如果您喜欢那种样式,可以用方法引用替换lambda表达式:

  • 问题内容: 我了解到Java具有运算符。你能详细说明它的使用位置及其优点吗? 问题答案: 基本上,你检查对象是否是特定类的实例。当你拥有超类或接口类型的对象的引用或参数,并且需要知道实际对象是否具有其他类型(通常更具体)时,通常可以使用它。 例: 请注意,如果你必须经常使用该运算符,通常表明你的设计存在一些缺陷。因此,在设计良好的应用程序中,你应尽可能少使用该运算符(当然,该通用规则也有例外)。

  • instanceof 操作符用于检查一个对象是否属于某个特定的 class。同时,它还考虑了继承。 在许多情况下,可能都需要进行此类检查。例如,它可以被用来构建一个 多态性(polymorphic) 的函数,该函数根据参数的类型对参数进行不同的处理。 instanceof 操作符 语法: obj instanceof Class 如果 obj 隶属于 Class 类(或 Class 类的衍生类),