我试图创建DefaultListModel
(类型String
)的扩展版本,它接受我创建的类的对象,称为LogItem
和'自动'使用该信息来推断应该使用哪些数据来填充相关元素。从Java中的匿名通用类调用重载方法
在我的代码,它看起来是这样的:
public static DefaultListModel<String> log = new DefaultListModel<String>(){
public void addElement(LogItem logItem){
super.addElement("[" + logItem.getTimestamp() + "] " + logItem.getEvent());
}
};
后来在类:
log.addElement(new LogItem(event));
然而,这些代码两个部分,后者给出了一个编译时错误:
Error:(196, 32) java: incompatible types: com.example.LogItem cannot be converted to java.lang.String
因此,看起来好像我出于某种原因无法访问我在匿名类中创建的重载方法( addElement(LogItem logitem){...}
)。
我想我必须错过一些东西,为什么我不能使用重载类?
看起来像选项1是要走的路,因为你似乎无法改变'log'的声明类型 – rptmat57
谢谢!我使用了第三个选项。我真的很想添加_one_重载的方法,并且您的解决方案能够工作!干杯! –