我想这样做:
IntStream.range(0, fileNames.size())
.map(i -> "mvn deploy:deploy-file" +
" -DrepositoryId=" + REPO_ID +
" -Durl=" + REPO_URL +
" -Dfile=" + LIBS + fileNames.get(i) +
" -DgroupId=" + GROUP_ID +
" -DartifactId=" + artifactName.get(i) +
" -Dversion=" + versionNumbers.get(i) +
" -DgeneratePom=true;")
.collect(Collectors.toList());
但这不会编译,因为map()
传递int
并返回int
。如何从int
映射到String
?
PS:有没有更惯用的方法来编写这段代码?
答案 0 :(得分:2)
IntStream有一个mapToObj
方法。有了它的泛型,不需要施放:
IntStream.range(0, fileNames.size())
.mapToObj(i -> "mvn deploy:deploy-file" +
" -DrepositoryId=" + REPO_ID +
" -Durl=" + REPO_URL +
" -Dfile=" + LIBS + fileNames.get(i) +
" -DgroupId=" + GROUP_ID +
" -DartifactId=" + artifactName.get(i) +
" -Dversion=" + versionNumbers.get(i) +
" -DgeneratePom=true")
.map(s -> s + ";")
.collect(Collectors.toList());