Spring批量指南源 - 关于通用设置

时间:2015-02-11 05:09:10

标签: java

我在spring.io中查看一个Spring-batch示例源代码 - 创建Batch Servie。

在示例中,有一个如下代码

@Bean
public ItemReader<Person> reader() {
    FlatFileItemReader<Person> reader = new FlatFileItemReader<Person>();
    reader.setResource(new ClassPathResource("sample-data.csv"));
    reader.setLineMapper(new DefaultLineMapper<Person>() {{
        setLineTokenizer(new DelimitedLineTokenizer() {{
            setNames(new String[] { "firstName", "lastName" });
        }});
        setFieldSetMapper(new BeanWrapperFieldSetMapper<Person>() {{
            setTargetType(Person.class);
        }});
    }});
    return reader;
}

我想知道的是&#34; {{&#34;。那是java标准代码吗? 我怎么称呼它?我想谷歌,但不知道我要搜索什么......

1 个答案:

答案 0 :(得分:1)

让我们考虑一下文本的简化部分

   = new DelimitedLineTokenizer() {
    {
        setNames(new String[] { "firstName", "lastName" });
    }
    });

代码意味着我们扩展DelimitedLineTokenizer引入匿名内部类和内部块{}我们只调用带有预定义数组的setNames()方法。

我们也可以这样做

   DelimitedLineTokenizer tokenizer= new DelimitedLineTokenizer();
   tokenizer.setNames(new String[] { "firstName", "lastName" });