我有这堂课:
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,则使用反射器
怎么做?