クラス LordOfTheStrings
java.lang.ObjectSE
org.springframework.data.javapoet.LordOfTheStrings
流れるような API を用いて Java コードブロックを作成するためのユーティリティクラスです。このクラスは、JavaPoet 上でメソッド呼び出し、return 文、複雑なコード構造の作成を簡素化する、構造化された拡張可能なプログラミングモデルを提供します。コード生成シナリオにおいて、条件付きネストを削減し、可読性を向上させるように設計されています。
このクラスは、動的なコードブロックの構築を容易にするために、LordOfTheStrings.CodeBlockBuilder、LordOfTheStrings.InvocationBuilder、LordOfTheStrings.TypedReturnBuilder などの追加の抽象化を導入します。これらの抽象化により、開発者は条件付きロジック、引数の連結、制御フローを備えたコードを宣言的かつ直感的に作成できます。
このクラスはフレームワーク内での内部使用を目的としており、アプリケーション開発者が直接使用するためのものではありません。
- 導入:
- 4.0
- 作成者:
- Mark Paluch
ネストされたクラスの要約
ネストされたクラス修飾子と型クラス説明static class流れるような方法でステートメントの構築をサポートし、関数statement creation用に拡張されたCodeBlock.Builderの拡張バリアントです。static class引数の連結をサポートするメソッド呼び出しコードを作成するビルダー。static classターゲットの戻り値の型に基づいて return ステートメントを構築するためのビルダー。static class条件付きバリアントや連結バリアントを含むステートメントを作成するためのビルダー。static classターゲットの戻り値の型に基づいて条件付きで return ステートメントを構築するためのビルダー。メソッドのサマリー
修飾子と型メソッド説明builder()新しいCodeBlockBuilderインスタンスを作成します。初期フォーマットと引数を使用して新しいCodeBlockBuilderインスタンスを作成します。builder(org.springframework.javapoet.CodeBlock.Builder builder) 指定されたCodeBlock.Builderを使用して新しいCodeBlockBuilderインスタンスを作成します。メソッド呼び出しコードを構築するためのLordOfTheStrings.InvocationBuilderを作成します。指定された戻り値の型を対象とする return ステートメントのビルダーを作成します。returning(ResolvableType returnType) 指定された戻り値の型を対象とする return ステートメントのビルダーを作成します。
メソッドの詳細
builder
新しいCodeBlockBuilderインスタンスを作成します。- 戻り値:
- 新しい
CodeBlockBuilder。
builder
public static LordOfTheStrings.CodeBlockBuilder builder(org.springframework.javapoet.CodeBlock.Builder builder) 指定されたCodeBlock.Builderを使用して新しいCodeBlockBuilderインスタンスを作成します。- パラメーター:
builder- 使用するCodeBlock.Builder。- 戻り値:
- 新しい
CodeBlockBuilder。
builder
public static LordOfTheStrings.CodeBlockBuilder builder(StringSE format, @Nullable ObjectSE... args) 初期フォーマットと引数を使用して新しいCodeBlockBuilderインスタンスを作成します。- パラメーター:
format- フォーマット文字列。args- フォーマット文字列の引数。- 戻り値:
- 新しく初期化された
CodeBlockBuilder。
invoke
メソッド呼び出しコードを構築するためのLordOfTheStrings.InvocationBuilderを作成します。指定された
methodCallには、Java Poet で定義されているフォーマット指定子を含めることができます。さらに、引数を指定する際にメソッド引数を展開するために使用されるフォーマット指定子(末尾)を含める必要があります。例:Sort sort = …; MethodCallBuilder method = PoetrySlam.method("$T.by($L)", Sort.class); method.arguments(sort, (order, builder) -> { builder.add("$T.asc($S)", Sort.Order.class, order.getProperty()); }); method.build();LordOfTheStrings.InvocationBuilder.argument(java.lang.String)メソッドまたはLordOfTheStrings.InvocationBuilder.argumentsメソッドを呼び出す際には、引数の存在が検出されます。空のCodeBlockメソッドまたはIterableSE メソッドを指定すると、この静的メソッドを呼び出す際の引数処理が有効化され、処理が容易になります。引数を追加しない場合は、methodCallメソッドの引数プレースホルダを省略する必要があることに注意してください。- パラメーター:
methodCall- 呼び出し (またはメソッド呼び出し) のフォーマット文字列。arguments- メソッド呼び出しの引数。- 戻り値:
- 新しい
MethodCallBuilder。
returning
指定された戻り値の型を対象とする return 文のビルダーを作成します。LordOfTheStrings.ReturnBuilderSupportに指定する形式にはreturnキーワードを含めないでください。これは、結果として得られるCodeBlockの構築時に使用されます。例:Method method = …; CodeBlock block = LordOfTheStrings.returning(ResolvableType.forMethodReturnType(method)) .whenBoxedLong("$T.valueOf(1)", Long.class) .whenLong("1L") .otherwise("0L") .build();- パラメーター:
returnType- メソッドの戻り値の型。- 戻り値:
- 新しい
ReturnStatementBuilder。
returning
指定された戻り値の型を対象とする return 文のビルダーを作成します。LordOfTheStrings.ReturnBuilderSupportに指定する形式にはreturnキーワードを含めないでください。これは、結果として得られるCodeBlockの構築時に使用されます。例:Method method = …; CodeBlock block = LordOfTheStrings.returning(method.getReturnType()) .whenBoxedLong("$T.valueOf(1)", Long.class) .whenLong("1L") .otherwise("0L") .build();- パラメーター:
returnType- メソッドの戻り値の型。- 戻り値:
- 新しい
ReturnStatementBuilder。