我有一个界面
public interface Foo<T> {
public void bar(String s, T t);
}
我想写一个方法
public void baz() {
String hi = "Hello";
String bye = "Bye";
Foo<String> foo = new Foo() {
public void bar(String s, String t) {
System.out.println(s);
System.out.println(s);
}
};
foo.bar(hi,bye);
}
我收到错误
<anonymous Test$1> is not abstract and does not override abstract method bar(String,Object) in Foo
Foo<String> foo = new Foo() {
我对 Java 还很陌生,我确信这是一个简单的错误。我该怎么写这个?
最佳答案
如果您使用的是 java 7,则类型推断此处不适用。您还必须在构造函数调用中提供类型参数。
Foo<String> foo = new Foo<String>() {
public void bar(String s, String t) {
System.out.println(s);
System.out.println(s);
}
};
foo.bar(hi,bye);
编辑:刚刚注意到您使用了 new Foo()
这基本上是一个原始类型,您必须为构造函数调用提供泛型类型,new Foo<String>()
关于java - 实例化通用接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14511649/