无法在子类上调用专门的方法

Unable to call specialized method on subclass

我制作了一个扩展 JTable class 的 class。我无法调用未在 JTable class 中定义的 public 方法。我怎样才能做到这一点? 这是我的 class:

的代码
public class CustomJTable extends JTable
{
    private int id_mod = -1;
    private ModelloCampiLista mcl = ModelloCampiLista.getInstance();
    private TreeMap<Integer, DefaultCellEditor> tm_cbox = new TreeMap<>();
    private Map<String,ModelloCampi> tm;

    public CustomJTable(MyDefaultTableModel dtm)
    {
        super();
        setCustomModel(dtm);
    }

    public void setCustomModel(MyDefaultTableModel dtm)
    {
        super.setModel(dtm);
        update(dtm);
    }

    private void update(MyDefaultTableModel dtm)
    {
        id_mod = dtm.id_modello;
        tm = dtm.tm;
        composeTm_cbox();
    }

    private void composeTm_cbox()
    {
        TreeMap<Integer, ArrayList<String>> temp = mcl.getCBoxElements(id_mod);

        for (Map.Entry<Integer, ArrayList<String>> entry : temp.entrySet())
        {
            int map_key = entry.getKey();
            ArrayList<String> map_value = entry.getValue();
            String[] temp_jcb_el = new String[map_value.size()];

            for (int i = 0; i < map_value.size(); i++)
                temp_jcb_el[i] = map_value.get(i);

            JComboBox tmp_cbox = new JComboBox(temp_jcb_el);
            DefaultCellEditor temp_dce = new DefaultCellEditor(tmp_cbox);

            tm_cbox.put(map_key, temp_dce);
        }
    }

    @Override
    public TableCellEditor getCellEditor(int row, int column)
    {
        if (column == 1)
        {
            if (tm_cbox.getOrDefault(row, null) == null)
                return super.getCellEditor(row, column);

            return tm_cbox.get(row);
        }

        return super.getCellEditor(row, column);
    } 
}

我想调用名为 setCustomModel 的 public 方法,但我看不到它。

实例存储在哪里?如果你正在做类似

的事情
JTable table = new CustomJTable(model);

然后你将删除变量的子类型规范,在运行时将是 CustomJTable 但在编译时变量具有 JTable 类型因此你不能调用任何专门的方法.

但是我没有看到完整的代码和用途,为什么你需要使用自定义 setCustomModel?为什么 JTable 已经提供的 setModel 还不够?

看来你的设计真的很耦合,这在OOP中不是一件好事。