“实例”的示例

2022-09-02 02:36:57
public class TableModel2 extends TableModel1 { ... }

TableModel2 tableModel = new TableModel2();

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

在上面的示例中,和 是 。那么,我该如何区分和使用?t1t2trueTableModel1TableModel2instanceof


答案 1

你不能用 来做,但你可以用 :instanceofgetClass

boolean t1 = tableModel.getClass().equals(TableModel1.class);
boolean t2 = tableModel.getClass().equals(TableModel2.class);

该运算符用于一直检查类层次结构,直到 ,包括对所有接口的检查。它让您知道您拥有的对象的实例是否可以强制转换为指定的类型,而不会触发类强制转换异常。instanceofjava.lang.Object

getClass另一方面,返回给定对象的特定类。


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