@@ -522,6 +522,29 @@ head:
522522 ソースコード管理システムで管理されている
523523- サンプルコードを記載する場合は、`{@snippet }`タグを利用する。
524524
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+
525548## インポート
526549
527550- `java. lang`パッケージはインポートしない
@@ -1521,8 +1544,8 @@ head:
15211544 boolean off = false ;
15221545 switch (day ) {
15231546 case SUNDAY , SATURDAY :
1524- off = true ;
1525- break ;
1547+ off = true ;
1548+ break ;
15261549 };
15271550 ```
15281551
@@ -1534,8 +1557,8 @@ head:
15341557 switch (day ) {
15351558 case SUNDAY :
15361559 case SATURDAY :
1537- off = true ;
1538- break ;
1560+ off = true ;
1561+ break ;
15391562 };
15401563 ```
15411564
@@ -1552,7 +1575,7 @@ head:
15521575 case Long l - > String . format(" long %d" , l);
15531576 case Double d - > String . format(" double %f" , d);
15541577 case String s - > String . format(" String %s" , s);
1555- default - > obj . toString();
1578+ default - > Objects . toString(obj );
15561579 };
15571580 }
15581581 ```
@@ -2073,7 +2096,8 @@ head:
20732096
20742097## レコードパターン
20752098
2076- - データの分解と型チェックを同時に行えるレコードパターンは、コードの可読性と安全性を向上させるため、レコードを使用する場合はレコードパターンを用いて記述することを推奨する。
2099+ - レコードパターンは、データの分解と型チェックを同時に行えるため、冗長なコードの削減、型安全性の向上、IDE による補完やリファクタリング支援などのメリットがあります。
2100+ これにより、コードの可読性・保守性・安全性が高まるため、レコードを使用する場合はレコードパターンを用いて記述することを推奨します。
20772101
20782102 良い例:
20792103
@@ -2099,7 +2123,20 @@ head:
20992123
21002124- 明確な方針で、利用する・利用しないを統一すること
21012125 方針無く、`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+ メリットは安全性・可読性の向上ですが、柔軟な拡張が難しくなるデメリットもあるため、利用方針を明確に定めてください。
21032140
21042141## テキストブロック
21052142
0 commit comments