2015-02-11 71 views
0

我在Spring.io中創建批處理服務。Spring批處理引導源 - 關於通用設置

在這個例子中,有像下面

@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; 
} 

我想知道的是「{{」代碼。那是java標準代碼嗎? 我該怎麼稱呼它?我想谷歌,但不知道我有什麼搜索......

回答

1

讓我們考慮文字的簡化部分

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

的代碼意味着我們擴大DelimitedLineTokenizer引入匿名內部類,並與內部塊{}我們只是用預定義的數組調用setNames()方法。

我們可以做同樣的這種方式

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

感謝@StanislavL。你的回答讓我清楚。 – nick 2015-02-11 07:18:23