我正在做一個小型的大學作業。寫三行代碼添加按鈕被累我寫了一個小工具功能:允許Java方法調用參數對象的子類的方法嗎?
private JButton addButton(Container container, String text) {
JButton button = new JButton(text);
button.addActionListener(this);
container.add(button);
return button;
}
那當然沿實用的方法來添加文本框:
private JTextField addInput(Container container, int width) {
JTextField input = new JTextField(width);
input.addActionListener(this);
container.add(input);
return input;
}
正如你所看到的,他們幾乎完全相同。所以我試圖通過一種強大的方法來減少行數,這會增加任何其他的東西。
private Component addComponent(Container container, Component component) {
component.addActionListener(this);
container.add(component);
return component;
}
現在,我必須承認,我開始想,也許這些超小型的實用功能有點荒謬。
然而,不管,我所有的強大addComponent
方法沒有奏效。相反,抱怨Component
的沒有ActionListeners
。
我可以看到周圍,這是具有MyJButton
和MyJTextField
這兩者的唯一方法從MyComponent
其具有addActionListener
方法繼承。簡單的原始目標和消除重複被拋出窗口?
如何/應該這樣做?我是新來的Java和嚴格類型的東西!
這將是一個不好的地方使用反射。你可能會以(可能)效率較低和(絕對)更脆弱的方式做同樣的事情。 – 2011-04-17 03:39:57