4

我正在学习和试验 Java 泛型,并想出了以下一段无法按预期编译的代码。Result无法解决I代表输入,O代表输出。

public interface Stats<I, O> {
    O addItem (int index, I item);
}

public class AStats implements Stats<Item, Result> {
    public static enum Result {
        SUCCESS1,
        SUCCESS2,
        ERROR;
    }

    @Override
    public Result addItem (int index, Item item) {
        //valid code
    }
}
  • Result有没有比在单独的文件中声明更优雅的解决方案?

  • 一般来说,拥有一个返回泛型类型实例的方法是不是很糟糕?

4

1 回答 1

8
  1. 您的班级名称是AStats.Result,而不是Result

    public class AStats implements Stats<Item, AStats.Result> {
       ...
    }
    
  2. 我不认为返回通用内部类型的实例是一个坏主意。

于 2013-03-20T11:25:33.673 回答