@@ -522,6 +522,29 @@ head:
522
522
ソースコード管理システムで管理されている
523
523
- サンプルコードを記載する場合は、`{@snippet }`タグを利用する。
524
524
525
+ 外部ファイルから引用する例:
526
+
527
+ ```java
528
+ /**
529
+ * ユーザー登録処理の例
530
+ * {@snippet file="UserRegistrationExample.java" region="registration"}
531
+ */
532
+ ```
533
+
534
+ インラインでサンプルコードを記載する例:
535
+
536
+ ```java
537
+ /**
538
+ * ユーザー登録処理の例
539
+ * {@snippet :
540
+ * User user = new User();
541
+ * user.setName("田中太郎");
542
+ * user.setEmail("tanaka@example.com");
543
+ * userRepository.save(user);
544
+ * }
545
+ */
546
+ ```
547
+
525
548
## インポート
526
549
527
550
- `java. lang`パッケージはインポートしない
@@ -1521,8 +1544,8 @@ head:
1521
1544
boolean off = false ;
1522
1545
switch (day ) {
1523
1546
case SUNDAY , SATURDAY :
1524
- off = true ;
1525
- break ;
1547
+ off = true ;
1548
+ break ;
1526
1549
};
1527
1550
```
1528
1551
@@ -1534,8 +1557,8 @@ head:
1534
1557
switch (day ) {
1535
1558
case SUNDAY :
1536
1559
case SATURDAY :
1537
- off = true ;
1538
- break ;
1560
+ off = true ;
1561
+ break ;
1539
1562
};
1540
1563
```
1541
1564
@@ -1552,7 +1575,7 @@ head:
1552
1575
case Long l - > String . format(" long %d" , l);
1553
1576
case Double d - > String . format(" double %f" , d);
1554
1577
case String s - > String . format(" String %s" , s);
1555
- default - > obj . toString();
1578
+ default - > Objects . toString(obj );
1556
1579
};
1557
1580
}
1558
1581
```
@@ -2073,7 +2096,8 @@ head:
2073
2096
2074
2097
## レコードパターン
2075
2098
2076
- - データの分解と型チェックを同時に行えるレコードパターンは、コードの可読性と安全性を向上させるため、レコードを使用する場合はレコードパターンを用いて記述することを推奨する。
2099
+ - レコードパターンは、データの分解と型チェックを同時に行えるため、冗長なコードの削減、型安全性の向上、IDE による補完やリファクタリング支援などのメリットがあります。
2100
+ これにより、コードの可読性・保守性・安全性が高まるため、レコードを使用する場合はレコードパターンを用いて記述することを推奨します。
2077
2101
2078
2102
良い例:
2079
2103
@@ -2099,7 +2123,20 @@ head:
2099
2123
2100
2124
- 明確な方針で、利用する・利用しないを統一すること
2101
2125
方針無く、`sealed`を利用するとコードの保守性や柔軟性が悪くなります。
2102
- 各プロジェクトで、`sealed`を利用しないか、`sealed`を利用しても良い箇所について方針を決めた上で使用するようにしてください。 (例:プロジェクト内で使用する共通機能ライブラリに限定して使用する。)
2126
+ 各プロジェクトで、`sealed`を利用しないか、`sealed`を利用しても良い箇所について方針を決めた上で使用するようにしてください。
2127
+
2128
+ 方針例:
2129
+ - プロジェクト内で使用する共通機能ライブラリに限定して使用する
2130
+ - 外部公開API では禁止し、内部ユーティリティやドメイン層のみ許可する
2131
+ - サードパーティ連携部分では利用しない
2132
+ - 全体で利用しない
2133
+ など、用途や公開範囲に応じて具体的な方針を決めてください。
2134
+
2135
+ ** 【補足:シールクラス(sealed classes)とは】**
2136
+ Java のsealedクラスは、継承できるサブクラスを明示的に制限する仕組みです。
2137
+ これにより、ドメインモデルの制約強化やパターンマッチングの網羅性チェックが可能となり、意図しない拡張や誤用を防ぐことができます。
2138
+ 典型的な利用例としては、状態や種類が限定されるドメイン(例:イベント種別、計算式のノード型など)の表現や、パターンマッチング(switch 文・式)で全ケースを網羅的に扱いたい場合などが挙げられます。
2139
+ メリットは安全性・可読性の向上ですが、柔軟な拡張が難しくなるデメリットもあるため、利用方針を明確に定めてください。
2103
2140
2104
2141
## テキストブロック
2105
2142
0 commit comments