問題タブ [javapoet]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
code-generation - javapoet現在生成されているインスタンスを戻り値として指定する方法
注釈付きの A クラスから A generated クラスを生成する注釈プロセッサを作成しています。次のようなことができるようになりたいです
そうするために、私が書いている現在のクラスである戻り値の型を指定する必要があります...そうする方法はありますか?
java - javapoet 静的インポートを作成するにはどうすればよいですか
JavaPoet を使用して静的インポートを作成するにはどうすればよいですか?
生成しようとしているコードは次のようになります。
java - javapoetのJavaクラスに静的セクションを追加する方法
javapoetライブラリを使用して静的コードブロックをJavaクラスに追加する方法はありますか
java - javapoet - 「拡張」と「実装」の実装方法
Javapoet を使用して、以下を実装する方法:
クラス A はクラス B を拡張します
クラス C はインターフェイス D を実装します
javadoc には、インターフェースの作成方法が記載されています。
java - enum定数のリストを追加するJavaPoet
EnumConstants の動的リストを追加する方法はありますかaddEnumConstants()
?
addFields()
またはaddMethods()
?に匹敵するものはないようです。
android - MethodSpecのmethodBuilder for JavaPoetでビルダーに適用できないModifier.PUBLICへの参照を取得する方法
LeakCanary の Android ActivityWatcher クラスに基本的な JavaPoet の例 (以下を参照) を実装しようとしています。
Modifier.PUBLIC と Modifier.STATIC、およびその他の .addModifiers ステートメントで Android Studio エラーが発生する
Builder の addModifiers (javax.lang.model.element.modifier...) は (int, int) に適用できません
および次のgradleエラー:
C:\AAAMachine\Machine-master\Machine-android\src\main\java\com\bmp\ActivityWatcher.java:58: エラー: Modifier .addModifiers(Modifier.PUBLIC, Modifier.STATIC) にアクセスできません ^ javax のクラス ファイル.lang.model.element.Modifier が見つかりません C:\AAAMachine\Machine-master\Machine-android\src\main\java\com\bmp\ActivityWatcher.java:65: エラー: クラス Builder のメソッド addModifiers を適用できません与えられた型; .addModifiers(Modifier.PUBLIC, Modifier.FINAL) ^ 必須: Modifier[] が見つかりました: int,int 理由: varargs の不一致。int は Modifier C:\AAAMachine\Machine-master\Machine-android\src\main\java\com\bmp\ActivityWatcher.java:73: error: Filer にアクセスできません javaFile.writeTo(System.out); に変換できません。^ javax.annotation.processing.Filer のクラス ファイルが見つかりません C: \AAAMachine\Machine-master\Machine-android\src\main\java\com\bmp\ActivityWatcher.java:172: エラー: クラス Builder のメソッド addModifiers を特定の型に適用できません。.addModifiers(Modifier.PUBLIC, Modifier.STATIC) ^ 必須: Modifier[] が見つかりました: int,int 理由: varargs の不一致。int を Modifier C:\AAAMachine\Machine-master\Machine-android\src\main\java\com\bmp\ActivityWatcher.java:179: エラー: クラス Builder のメソッド addModifiers を特定の型に適用できません。.addModifiers(Modifier.PUBLIC, Modifier.FINAL) ^ 必須: Modifier[] が見つかりました: int,int 理由: varargs の不一致。int を Modifier C:\AAAMachine\Machine-master\Machine-android\src\main\java\com\bmp\ActivityWatcher.java:187: エラー: パスにアクセスできません javaFile.writeTo(System. アウト); ^ java.nio.file.Path のクラス ファイルが見つかりません 注: C:\AAAMachine\Machine-master\Machine-android\src\main\java\com\bmp\internal\MachineInternals.java は非推奨の API を使用またはオーバーライドします。注: 詳細については、-Xlint:deprecation を使用して再コンパイルしてください。注: 一部のメッセージは簡略化されています。-Xdiags:verbose を使用して再コンパイルし、完全な出力 6 エラーを取得します
失敗した
FAILURE: ビルドは例外で失敗しました。
問題: タスク ':Machine-android:compileDebugJava' の実行に失敗しました。
コンパイルに失敗しました。詳細については、コンパイラ エラー出力を参照してください。
試してみてください: --stacktrace オプションを指定して実行し、スタック トレースを取得します。--info または --debug オプションを指定して実行し、より多くのログ出力を取得します。
ビルドに失敗しました
合計時間: 6.881 秒
メッセージからのエラーは次のとおりです。
C:\AAAmachine\machine-master\machine-android\src\main\java\com\bmp\ActivityWatcher.java エラー:(58, 15) エラー: javax.lang.model.element.Modifier の Modifier クラス ファイルにアクセスできません見つかりません エラー:(65, 15) エラー: クラス Builder のメソッド addModifiers は、指定された型に適用できません。必須: Modifier[] が見つかりました: int,int 理由: varargs の不一致。int を Modifier に変換できません エラー:(73, 19) エラー: javax.annotation.processing.Filer の Filer クラス ファイルにアクセスできません エラー:(172, 15) エラー: クラス Builder のメソッド addModifiers を特定の型に適用できません; 必須: Modifier[] が見つかりました: int,int 理由: varargs の不一致。int は修飾子エラーに変換できません:(179, 15) エラー: クラス Builder のメソッド addModifiers は、指定された型に適用できません。必須: Modifier[] が見つかりました: int,int 理由: varargs の不一致。int は修飾子エラーに変換できません:(187, 19) エラー: java.nio.file.Path の Path クラス ファイルにアクセスできません 注: C:\AAAmachine\machine-master\machine-android\src\main\java \com\bmp\internal\machineInternals.java は非推奨の API を使用またはオーバーライドします。注: 詳細については、-Xlint:deprecation を使用して再コンパイルしてください。注: 一部のメッセージは簡略化されています。-Xdiags:verbose を使用して再コンパイルし、完全な出力を取得します エラー: タスク ':machine-android:compileDebugJava' の実行に失敗しました。
コンパイルに失敗しました。詳細については、コンパイラ エラー出力を参照してください。情報:BUILD FAILED 情報:合計時間: 6.881 秒 情報:7 エラー 情報:0 警告 情報:コンソールで完全な出力を参照
以下は、JavaPoet の readme.md ファイルの基本的な例を使用したソース コードの要点です。
書き込む物理ファイル名と関係あるのでしょうか?
java - Javapoet: 生成された他のクラスの参照
JavaPoet: バージョン 1.5.1
JDK: 1.7
注釈を使用してコードを生成しています。ここに私が試していることがあります。
以下は、プロジェクトの一部として利用できます。
以下は、上記の注釈を使用して作成することを目的としています。
コンパイルされるまで存在AService
しAController
ません。
@Autowired
注釈を含めることができます。しかし、どのようにAService
型として参照するのAController
ですか?