我有一个与自定义 GWT 小部件有关的问题。
我将制作一个执行语言选择的自定义 ListBox。我试图通过扩展 GWT 的 ListBox 类来实现这一点,它可以工作。
public class LanguageListBox extends ListBox {
....
}
但是,我认为从 Java 的角度来看,我们可能更喜欢组合而不是继承。我确实阅读了一些建议扩展 Composite 而不是小部件本身的文章。
public class LanguageListBox extends Widget {
private final ListBox listBox;
LanguageListBox() {
listBox = new ListBox();
}
......
}
这个类不工作。我相信我未能创建将调用到 LanguageListBox 的某些方法转发到包装的 ListBox 的桥接方法。但是,我检查了 ListBox 的许多方法,我需要转发哪个方法才能使这个设计工作?
总而言之,我不确定在这种情况下最好的设计是什么。
- 我应该让我的 LanguageListBox 直接扩展 ListBox 还是扩展 Compisite 并将方法调用转发到包装的 ListBox?
- 还有其他更好的设计吗?