在Java6中使用2个通用参数实现回调接口

在Java6中使用2个通用参数实现回调接口,java,function,generics,interface,callback,Java,Function,Generics,Interface,Callback,错误消息是 错误:(66,22)错误:不兼容类型:匿名回调 无法转换为回调 Java 6不支持通用返回类型? 还是我遗漏了什么 ================================================================= 更新 我发现这些代码可以编译。但我不能确定哪一个是正确的 logger = MetricLogger.getInstance(app); // doesn't compile logger.write(new Callback<Lo

错误消息是

错误:(66,22)错误:不兼容类型:匿名
回调
无法转换为
回调

Java 6不支持通用返回类型?
还是我遗漏了什么

=================================================================

更新

我发现这些代码可以编译。但我不能确定哪一个是正确的

logger = MetricLogger.getInstance(app);

// doesn't compile
logger.write(new Callback<LogFormat, Long>() {
    @Override
    public Long execute(LogFormat arg) {
        return null;
    }
});
//解决方案1
公共接口回调{
R执行(T参数)
}
新回调函数(){
@凌驾
公共长执行(LogFormat arg){…}
}
//解决方案2
公共接口回调{
R执行(T参数)
}
新回调函数(){
@凌驾
公共长执行(LogFormat arg){…}
}

Logger类上的write方法可能有如下签名:
void write(callbacklogger.write()方法似乎只接受回调。而且提供的代码似乎与提供的错误不匹配:Callback VSCallback@Mikey,你编译代码了吗?没有-我不知道MetricLogger是从哪里来的:请看Prims的回答我认为Prims的回答是正确的:正确的解决方案取决于使用情况。
logger = MetricLogger.getInstance(app);

// doesn't compile
logger.write(new Callback<LogFormat, Long>() {
    @Override
    public Long execute(LogFormat arg) {
        return null;
    }
});
// Solution 1
public interface Callback<T> {
  <R> R execute(T arg)
}

new Callback<LogFormat>() {
  @Override
  public Long execute(LogFormat arg) { ... }
}

// Solution 2
public interface Callback {
  <T, R> R execute(T arg)
}

new Callback<LogFormat>() {
  @Override
  public <LogFormat, Long> Long execute(LogFormat arg) { ... }
}