mcpField
J
java-fundamentals

java-fundamentals

github.com/pluginagentmarketplace開発41620 回インストール42 週間前に更新
リポジトリ

java-fundamentals について

Java 8~21 の開発者向け基礎スキルガイドです。構文、オブジェクト指向、コレクション、Streams API、例外処理に加え、コレクション選択や問題調査の参考情報も扱います。

主な機能

  1. 01Java 8~21 の基本構文
  2. 02オブジェクト指向と SOLID 原則
  3. 03コレクション型の選択
  4. 04Streams API と Optional
  5. 05例外処理のパターン

活用シーン

  1. 01慣用的な Java コードの記述
  2. 02アクセス方法に応じたコレクション選択
  3. 03Streams によるデータ処理
  4. 04例外や反復中の変更エラーへの対応

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/pluginagentmarketplace/custom-plugin-java --skill java-fundamentals

インストール後、Claude Code で/java-fundamentalsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

assets/
config.yaml
schema.json
references/
GUIDE.md
PATTERNS.md
scripts/
validate.py

詳細

Java の基礎スキル

本番品質のパターンを使って、Java プログラミングの基礎を習得します。

概要

このスキルでは、Java 8〜21 の構文、オブジェクト指向プログラミング、コレクション、Streams API、例外処理など、Java の基礎を扱います。

このスキルを使用する場面

次のような場合に使用します。

  • クリーンで慣用的な Java コードを書く
  • オブジェクト指向プログラミングの原則に従ってクラスを設計する
  • 適切なコレクション型を選ぶ
  • 関数型プログラミングのパターンを実装する
  • 例外を適切に処理する

対象トピック

コア構文(Java 8〜21)
  • 変数、データ型、演算子
  • 制御フロー、メソッド、クラス
  • レコード(Java 16 以降)、シールドクラス(Java 17 以降)
  • パターンマッチング(Java 21)
オブジェクト指向プログラミング
  • クラス、継承、ポリモーフィズム
  • インターフェースと抽象クラス
  • SOLID 原則
コレクションフレームワーク
  • List:ArrayList、LinkedList
  • Set:HashSet、TreeSet
  • Map:HashMap、ConcurrentHashMap
  • Queue:ArrayDeque、PriorityQueue
Streams API
  • filter、map、flatMap、reduce、collect
  • Optional の処理
  • 並列ストリーム
例外処理
  • チェック例外と非チェック例外
  • try-with-resources
  • カスタム例外

クイックリファレンス

// Record (Java 16+)
public record User(String name, String email) {}

// Pattern matching (Java 21)
String format(Object obj) {
    return switch (obj) {
        case Integer i -> "Int: %d".formatted(i);
        case String s -> "String: %s".formatted(s);
        default -> obj.toString();
    };
}

// Stream operations
List<String> names = users.stream()
    .filter(User::isActive)
    .map(User::getName)
    .sorted()
    .toList();

// Optional handling
String name = Optional.ofNullable(user)
    .map(User::getName)
    .orElse("Unknown");

コレクションの選択

必要な機能使用するもの理由
インデックスによるアクセスArrayListO(1) のランダムアクセス
一意な要素HashSetO(1) の contains
ソート済みの一意な要素TreeSetO(log n) でソート
キーと値のペアHashMapO(1) の get/put

トラブルシューティング

問題原因解決策
NullPointerExceptionnull 参照Optional を使用する
ConcurrentModificationException反復処理中に変更Iterator.remove()
ClassCastException型が不正ジェネリクスを使用する

使用方法

Skill("java-fundamentals")

コメント