Mais conteúdo relacionado
Semelhante a Java8 コーディングベストプラクティス and NetBeansのメモリログから... (20)
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
- 29. 変数への再代入を避ける
String message = "default";
if (hoge) {
message = "ほげ";
}
String message;
if (hoge) {
message = "ほげ";
} else {
message = "default";
}
- 37. 大事なものはインデントを浅く
●
早期リターン
if (hoge) {
Foo foo = bar.getSomething();
return foo.getImportantValue();
}
return null;
if (!hoge) {
return null;
}
Foo foo = bar.getSomething();
return foo.getImportantValue();
- 43. forEachのifをfilterにできる
strs.forEach(s -> {
if (s.length() >= 5) {
return;
}
String upper = s.toUpperCase();
Stream.of(upper.split(","))
.forEach(Syastem.out::println);
});
strs.stream()
.filter(s -> s.length() < 5)
.forEach(s -> {
String upper = s.toUpperCase();
Stream.of(upper.split(","))
.forEach(System.out::println);
});
- 44. forEachでの値変換はmapにできる
strs.stream()
.filter(s -> s.length() < 5)
.forEach(s -> {
String upper = s.toUpperCase();
Stream.of(upper.split(","))
.forEach(System.out::println);
});
strs.stream()
.filter(s -> s.length() < 5)
.map(s -> s.toUpperCase())
.forEach(upper -> {
Stream.of(upper.split(","))
.forEach(System.out::println);
});
- 45. forEachの入れ子はflatMapにできる
strs.stream()
.filter(s -> s.length() < 5)
.map(s -> s.toUpperCase())
.forEach(upper -> {
Stream.of(upper.split(","))
.forEach(System.out::println);
});
strs.stream()
.filter(s -> s.length() < 5)
.map(s -> s.toUpperCase())
.flatMap(upper -> Stream.of(upper.split(",")))
.forEach(System.out::println);
- 46. 同じオブジェクトには同じ変数
strs.stream()
.filter(s -> s.length() < 5)
.map(s -> s.toUpperCase())
.flatMap(upper -> Stream.of(upper.split(",")))
.forEach(System.out::println);
strs.stream()
.filter(a -> a.length() < 5)
.map(b -> b.toUpperCase())
.flatMap(upper -> Stream.of(upper.split(",")))
.forEach(System.out::println);
- 51. ifPresentのifをfilterに
strOpt.ifPresent(s -> {
if (s.length() >= 5) {
return;
}
String upper = s.toUpperCase();
findSome(upper) // return Optional
.ifPresent(Syastem.out::println);
});
strOpt.filter(s -> s.length() >= 5)
.ifPresent(s -> {
String upper = s.toUpperCase();
findSome(upper) // return Optional
.ifPresent(System.out::println);
});
- 52. ifPresentでの値変換をmapに
strOpt.filter(s -> s.length() >= 5)
.ifPresent(s -> {
String upper = s.toUpperCase();
findSome(upper) // return Optional
.ifPresent(System.out::println);
});
strOpt.filter(s -> s.length() >= 5)
.map(s -> s.toUpperCase())
.ifPresent(upper -> {
findSome(upper) // return Optional
.ifPresent(System.out::println);
});
- 53. ifPresentの入れ子をflatMapに
strOpt.filter(s -> s.length() >= 5)
.map(s -> s.toUpperCase())
.ifPresent(upper -> {
findSome(upper) // return Optional
.ifPresent(System.out::println);
});
strOpt.filter(s -> s.length() >= 5)
.map(s -> s.toUpperCase())
.flatMap(upper -> findSome(upper))
.ifPresent(System.out::println);