Проверьте, расширяется ли класс / объект JPanel или JFrame с помощью Reflect или является instanceOf

У меня есть этот класс:

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. Теперь каждый extendedJFrame класс (несколько классов) имеет несколько свойств, расширяющих JPanel, другими словами extendedJPanel классы. В будущем я не буду знать ни пакета / имени класса JFrame, ни его свойства (Number и names), чем у JPanel.

Я хочу узнать, используя рефлектор, если какое-то свойство распространяется на JPanel И если этот класс содержит какое-то свойство JFileChooser или JTable

Как это сделать?

0 ответов

Другие вопросы по тегам