Проверьте, расширяется ли класс / объект JPanel или JFrame с помощью Reflect или является instanceOf - PullRequest
0 голосов
/ 27 февраля 2019

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

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, ни его свойства (номера и имена) JPanel.

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

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

...