使用Reflect检查class / object的JPanel或JFrame扩展是否为instanceOf

时间:2019-02-27 03:16:45

标签: java field extends instanceof reflect

我上了这个课:

public class JPanelInfo extends JPanel {
    private JFileChooser lastSource; 
    private JTable table;
    ....
}

现在我还有另一堂课:

public class JFrameNumbers extends JFrame {
    private JPanelInfo panelInfo;
    ....
}

现在有一些实例

JFrameNumbers frameNumbers = new JFrameNumbers();
Field fields[] = frameNumbers.getClass().getDeclaredFields();

Arrays.stream(fields).forEach(field -> {
  //check field extends of instanceOf JPanel
  // check if field is instance of JPanelInfo
  // I'm lost
});

简短说明,我正在创建一个通用类,与从JFrame扩展的多个Class一起使用。 现在,每个extendedJFrame类(多个类)都具有扩展JPanel的多个属性,换句话说,具有extendedJPanel类。 将来,我将不知道JFrame的类的包/名称,也不知道JPanel的属性(编号和名称)。

我想使用反射器来发现JPanel的某些属性是否扩展 并且如果此类包含一些属性JFileChooser或JTable

如何做到?

0 个答案:

没有答案