我正在尝试学习Spring Batch,并且这本书提供了示例接口类,但是命名约定使我无法接受。

public interface ItemProcessor<I,O> {
O process(I item) throws Exception;


}

我以前从未在类名中看到过参数。它们是出于实际目的还是只是作为指导?如果更改了类名,以下代码会有什么不同?

public interface ItemProcessor {
O process(I item) throws Exception;


}

最佳答案

您正在谈论generics

IO是该类的通用参数。

您可以将ItemProcessor视为ItemProcessorI的“ O”。

提示泛型如何工作的最简单方法是考虑类Box

现在一盒是什么?

class Box<? extends Number>


...是BoxNumber

等等

08-05 05:03