Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java泛型查询_Java_Generics - Fatal编程技术网

Java泛型查询

Java泛型查询,java,generics,Java,Generics,我在Spring批处理StepBuilder类中看到了以下方法定义。这里第一个角括号有什么用 public <I, O> SimpleStepBuilder<I, O> chunk(int chunkSize) { return (new SimpleStepBuilder(this)).chunk(chunkSize); } public SimpleStepBuilder块(int-chunkSize){ return(newsimplestepbuilde

我在Spring批处理StepBuilder类中看到了以下方法定义。这里第一个角括号有什么用

public <I, O> SimpleStepBuilder<I, O> chunk(int chunkSize) {
    return (new SimpleStepBuilder(this)).chunk(chunkSize);
}
public SimpleStepBuilder块(int-chunkSize){
return(newsimplestepbuilder(this)).chunk(chunkSize);
}
第一个
是类型的定义。您正在定义一个通用“占位符”名称列表(以及它们的约束条件,可选),然后这些名称可以在方法或签名中代替“实”类型使用

第二个
是参数化
SimpleStepBuilder
。正如您可以将
ArrayList
参数化为
ArrayList
,这里您将使用两种通用类型对
simplestbuilder
进行参数化:
I
O


查看返回字符串的不同方法可能会有所帮助,相反,使用泛型类型参数来定义该方法的参数:

public <I, O> String chunk(I input, O output) {
    return input.toString() + output.toString();
}
公共字符串块(I输入,O输出){
返回input.toString()+output.toString();
}

它定义了该方法本地的泛型类型
I
O
。它定义了
I
O
类型,在您的情况下,这些类型随后用于返回类型
SimpleStepBuilder
。这意味着当您通过以下方式调用chunk方法时:
yourObject..chunk(0)
,您将收到由
Cat
Dog
类型参数化的
SimpleStepBuilder
实例,也就是说:
O
对于(类型)变量来说不是一个好名字。在某些字体中,它看起来很像
0