内部静态枚举作为泛型类型?

时间:2013-03-20 11:21:06

标签: java generics static enums static-members

我正在学习和试验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

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

1 个答案:

答案 0 :(得分:8)

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

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