java instanceof运算符和类返回方法

Sve*_*mir 4 java instanceof

我正在编写自己的TableModel实现.由于我需要一些共享某些功能的各种实现,我决定首先准备一个抽象类.表的字段表示为:

protected Object[][] lines;
Run Code Online (Sandbox Code Playgroud)

基本上,同一列中的所有元素应该是相同的类型,但是列类可能因不同的实现而异.我想setValueAt在抽象类中编写一个通用函数,检查是否val属于正确类型.

@Override
public void setValueAt(Object val, int row, int col) {
    if (val instanceof this.getColumnClass(col))
        lines[col][row] = val;
}
Run Code Online (Sandbox Code Playgroud)

编译器在此发出错误信号:

Syntax error on token "instanceof", == expected
Run Code Online (Sandbox Code Playgroud)

为什么?

joh*_*902 6

正确的操作数instanceof必须是ReferenceType(JLS 15.20).使用

if (this.getColumnClass(col).isInstance(val))
Run Code Online (Sandbox Code Playgroud)