coding-java について
coding-javaは、Java 21以降とSpring Boot 3を扱う開発者向けのスキルです。最新の言語機能や並行処理、MavenまたはGradleによるビルドを支援します。
主な機能
- 01Javaのrecordとsealedクラス
- 02switchでのパターンマッチング
- 03仮想スレッドによる並行処理
- 04Spring Boot 3の開発
- 05MavenとGradleでのビルド
活用シーン
- 01recordで不変データをモデル化
- 02sealed型で継承範囲を制限
- 03Spring Boot 3でバックエンドAPIを構築
- 04仮想スレッドで並行タスクを実行
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill coding-javaインストール後、Claude Code で/coding-javaを入力して読み込まれたか確認します。
詳細
coding-java
目的
このスキルを使用すると、AI が Java 21 以降の開発を支援できます。レコード、sealed クラス、パターンマッチング、Project Loom の仮想スレッドなどの最新機能に加え、ビルドと依存関係の管理に Maven または Gradle を使用する Spring Boot 3 アプリケーションに重点を置いています。
使用する場面
制限された継承を実現する sealed クラスの実装、switch 文でのパターンマッチング、仮想スレッドを利用したスケーラブルなアプリケーションなど、Java 21 以降の構文を必要とするプロジェクトでこのスキルを使用します。Spring Boot 3 を使ったバックエンド開発や、エンタープライズ向け Java アプリのビルドを Maven/Gradle で管理する場合にも適用できます。
主な機能
- 不変データクラスに Java のレコードを使用します。
record Point(int x, int y) {}のように定義します。 - サブクラスを制限する sealed クラスを実装します。
sealed interface Shape permits Circle, Square {}のように使用します。 - switch でパターンマッチングを利用します。例:
switch (obj) { case String s -> process(s); default -> handleDefault(); }。 - 並行処理に仮想スレッドを使用します。Java 21 以降で
Thread.startVirtualThread(() -> task());を使って起動します。 - Spring Boot 3 アプリを構築します。
@SpringBootApplicationを設定し、組み込み Tomcat を使用します。 - ビルドを自動化します。プロジェクトをコンパイルするには、Maven の
mvn spring-boot:runまたは Gradle のgradle bootRunを実行します。
使用パターン
タスクを実行するには、コードやコマンドを正確に構成します。たとえば、データモデル用の Java レコードを作成する場合は、次のようにします。
- 次のように記述します:
public record User(String name, int age) {}。 - main メソッドで使用します:
User user = new User("Alice", 30); System.out.println(user);。
別の例として、仮想スレッドを使う Spring Boot 3 アプリをセットアップします。
- pom.xml に依存関係を追加します:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>。 - コントローラーに記述します:
@RestController public class MyController { @GetMapping("/") public String home() { Thread.startVirtualThread(() -> logMessage()); return "Hello"; } }。 - Maven で実行します:
mvn spring-boot:run --define spring.threads.virtual.enabled=true。
主なコマンド/API
プロジェクトのビルドと実行には、次の正確なコマンドを使用します。
- Maven:コンパイルには
mvn clean install -DskipTests、アプリの起動にはmvn spring-boot:runを使用します。 - Gradle:コンパイルには
gradle build --no-daemon、実行にはgradle bootRun --args='--server.port=8080'を使用します。 - 仮想スレッド用 Java API:
ExecutorService executor = Executors.newVirtualThreadPerTaskExecutor(); executor.submit(() -> { /* task code */ });。 - Spring Boot API:
@GetMapping("/api/data") public ResponseEntity<?> getData() { return ResponseEntity.ok(data); }を定義した後、http://localhost:8080/api/dataのようなエンドポイントにアクセスします。 - 設定形式:設定には application.properties を使用します。例:
server.port=8080。または YAML:server: port: 8080。
統合に関する注意事項
Spring Boot で外部サービスを利用する場合は、たとえば $SPRING_API_KEY を export して、セキュリティキーを環境変数に設定します。IDE では Spring Tools Suite などのプラグインを追加し、ビルドツールを設定します。VS Code では Maven/Gradle 拡張機能を使用します。データベースに接続するには、build.gradle に implementation 'org.springframework.boot:spring-boot-starter-data-jpa' を追加し、application.yml でデータソースを設定します:spring.datasource.url=jdbc:mysql://localhost/dbname。SDK マネージャーを使用して、Java 21 以降が設定されていることを確認します。
エラー処理
エラーには具体的に対処します。ビルドに失敗した場合は、ログで「Compilation error」を確認し、構文を修正します。たとえば、sealed クラスが誤って使用されている場合は、許可されたすべてのサブクラスが定義されていることを確認します。仮想スレッドでは、InterruptedException を次のように捕捉します。try { Thread.startVirtualThread(() -> { throw new RuntimeException(); }); } catch (Exception e) { log.error(e.getMessage()); }。Spring Boot では、API エラーに @ExceptionHandler を使用します。@ControllerAdvice public class GlobalExceptionHandler { @ExceptionHandler(Exception.class) public ResponseEntity<?> handleError(Exception e) { return ResponseEntity.status(500).body("Error: " + e.getMessage()); } }。Maven/Gradle では、原因を調べるために --debug フラグを使用します。例:mvn clean install --debug。
グラフの関係
- 関連先:coding-general(共通のコーディングツールを持つ「coding」クラスター経由)。
- 接続先:coding-python(言語をまたいだ開発パターン向け)。
- 連携先:devops-deployment(Java ビルドを CI/CD パイプラインに統合するため)。