問題タブ [annotation-processing]

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.

0 投票する
1 に答える
825 参照

java - Java注釈処理:注釈の付いていないクラスの「要素」にアクセスできますか?

ElementJava アノテーション処理 (Java 6 以降) は、インターフェイス (およびその他)を介してクラスやメソッドに関する多くの情報にアクセスできるため、非常に優れた概念です。

しかし悲しいことに、私は経験的に、アノテーションの付いていないクラスがカスタム アノテーション プロセッサに渡されることは決してないことを知る必要がありました。

私の発見は真実ですか?または、コンパイラを「だまして」、カスタム注釈プロセッサに注釈なしのクラスに関する情報も与えることができますか?

0 投票する
2 に答える
2708 参照

java - Java アノテーション処理: ラウンドが最後のラウンドかどうかを知るにはどうすればよいですか?

を拡張する場合AbstractProcessor、 をオーバーライドする可能性がありますが、すべてのラウンドが処理さinit(...)れた後に呼び出される「反対の」メソッドはありません。

これは問題です。各ラウンドで収集した情報を同じファイルに追加する必要がある場合、最後のラウンドがいつだったかを知ることができないため、ファイルを閉じることができません。そのため、ファイルは閉じられず、空のままです。

シャットダウン フックを使用しても機能しません。フックは呼び出されません。

何か案は?

0 投票する
2 に答える
213 参照

java - com.sun.mirror。*パッケージはOSXのどこに行きましたか?

私は現在、aptアノテーションプロセッサを作成しようとしています。ただし、システムで必要なtools.jarが見つかりません。私はOSXを使用しており、デフォルトのJDKをインストールしています。apt関連のクラスはどこにありますか?

0 投票する
2 に答える
2415 参照

java - Java: リフレクション (実行時) とミラーリング (アノテーション処理時)

概念間の一般的な違いを理解しています

  • リフレクション(実行時にを使用して実行Class, Method, Field, Annotation, ...)、および
  • ミラーリング(を使用した注釈処理TypeMirror, TypeElement, ...中に行われます)。

しかし、誰かが2つの概念を詳細に比較できますか(または、それが行われているリソースを教えてください)?

たとえば、どの概念がどのような情報を提供し、他の概念が提供しないか...

ありがとうございました。

0 投票する
2 に答える
5086 参照

java - javax.lang.model: フィールドの型を取得するにはどうすればよいですか?

ではjava.lang.reflect、次のようにします。

しかし、javax.lang.model's VariableElement(フィールドを表している場合と表していない場合があります) をどうすればよいでしょうか? 対応する戻り値は (推測) になりTypeElementます。

では、 で表されるフィールドjavax.lang.modelのタイプ (または ) を取得するにはどうすればよいでしょうか?TypeElementVariableElement

ところで、javax.lang.model に適合する単一の Stackoverflow-tag はありません;)

0 投票する
1 に答える
980 参照

java - java 1.6 アノテーション処理時に型パラメータではなく実際の型を取得する

これら2つのクラスが与えられた場合

このコードを注釈プロセッサで実行すると、必要な結果が得られません。

env は ProcessingEnvironment です。entityElement は要素です。(私のクラス)

fieldType が に設定されていKey<Foo_>ます。

fieldType を に設定するには、何を呼び出す必要がありKey<MyClass>ますか?

0 投票する
1 に答える
6808 参照

java - maven-processor-plugin の注釈プロセッサの作成

maven-processor-plugin の注釈プロセッサを作成することに興味があります。私はMavenに比較的慣れていません。

プロジェクト パスのどこにプロセッサの Java ソース コードを配置する必要がありますか (例: src/main/java/...)。これにより、適切にコンパイルされますが、アーティファクト JAR ファイルの一部にはなりません。

0 投票する
1 に答える
630 参照

java - AspectJ織り:アスペクトへの静的参照なしで完全なコード織りを行う方法は?

数週間前、私はJavaクラスのフィールド用にいくつかの文字列定数を作成する方法を探していました-> mavenでクラス属性の定数を生成しますか?

私はそれを働かせました。定数を含むアスペクトを作成し、それらをクラス ファイルに織り込みます。問題は、クライアントが織り込まれたクラスを使用しようとすると NoClassDefFound Exception が発生することです。これには 2 つの理由があります。

  1. ビルド プロセス中にクライアント jar からアスペクト .class ファイルを削除しています

  2. クラスパスにアスペクトライブラリがありません

逆コンパイラを使用して、クラスに次のような静的ブロックがあることがわかりました。

私の質問: クライアント jar の側面を完全に取り除くことができるように、クラス ファイルに実際の "public static final String"-Field を作成するウィーブ プロシージャにオプションはありますか?

前もって感謝します

マーティン

0 投票する
5 に答える
7477 参照

java - Java Annotation Processor からのソース コードへのアクセス

Java Annotation Processor 内から型の実際の元のソース コードにアクセスしようとしています。これはどういうわけか可能ですか?ありがとう!

0 投票する
1 に答える
1420 参照

java - Java Annotation Processor を使用したアノテーションの追加

Annotation Processor は、通常、注釈を使用してそれらに反応するために使用されることを知っています。ただし、この「反応」に他の注釈の追加が含まれるユースケースがあります。これはプロセッサ内で実行できますか? もしそうなら、どのように?