問題タブ [jsr305]

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 投票する
2 に答える
1151 参照

java - @Nullable とジェネリック (Eclipse)

ユーティリティ メソッドを Java 8 に導入したいと考えています。名前付きのメソッドmaxは次のように定義されています。

Eclipse にエラーが表示されるようになりました。

Null 型の不一致 (型注釈):nullは自由型変数と互換性がありませんE

@Nullableの定義に追加するとエラーが取り除かれると思いresultましたが、明らかにそうではありません。メソッド全体に追加で注釈を付けても@Nullable、エラーは解決しません。

ところで、私は FindBugs の jsr-305.jar を使用しており、Eclipse をjavax.annotation.Nonnullと同様に尊重するように構成しましたjavax.annotation.Nullable。編集:LubuntuでEclipse Luna 4.4.2とOracle JDK 8ビルド1.8.0_25-b17を実行しています。

さて、私の質問です:エラーはどこから来たのですか?注釈とジェネリック型定義の両方の利点を維持しながら、どうすればそれを取り除くことができますか?

編集:デフォルトのEclipseアノテーションが使用されているサンプルプロジェクトを追加したところ、多少機能しているように見えます(result == null結果がその時点でのみnullになる可能性があると誤って推測するため、で警告を生成することを除けば)。したがって、これはデフォルト以外の注釈クラスに関する Eclipse の問題のようです。Eclipse の注釈の独自のコピーを使用して再テストしたNullableところ、上記と同じエラーが発生しました。

0 投票する
0 に答える
733 参照

eclipse - Eclipse カスタム @NonNull アノテーションが無視される

Eclipse の「null 分析」機能を使用したいのですが、org.eclipse.jdt.annotation.NonNull アノテーションよりも javax.annotation.Nonnull アノテーションを使用したいと考えています。設定したカスタム アノテーションを Eclipse に認識させることができないようです。

Eclipse Luna 4.4.2 を使用しています。

次のクラスのみを含む新しいテスト プロジェクトを作成しました。

私のコンパイラ設定は、javax アノテーションを使用するように構成されています。

Null 解析設定

null 指定の注釈

私のプロジェクトには、注釈を提供するための checker-1.8.10 JAR が含まれています。

これらの設定では、Eclipse は 0 エラーを報告します。

「null 仕様にデフォルトのアノテーションを使用する」をチェックして、テスト クラスを Eclipse のアノテーションを使用するように変更すると、次のようになります。

null 型の不一致

私が間違っていることを知っている人はいますか、これはおそらくEclipseのバグですか? 問題が発生した場合に備えて、チェッカーの代わりにGoogleのjsr305 JARも試しましたが、それは役に立ちませんでした。

0 投票する
0 に答える
112 参照

java-8 - 分割パッケージへの Javadoc リンク

javadoc ツールを使用する場合 (Javadoc を直接使用するのではなく、Maven Javadoc プラグインを使用して行います)、-link外部ソースにリンクするオプションがあります。現在の問題は、私のプロジェクトが JSR-305 アノテーションを使用しており、Java SE 8 API にリンクするように javadoc ツールを構成していることです。

Java SE 8 API と JSR-305 の両方が を使用するjavax.annotationため、javadoc は Java SE 8 からのものか JSR-305 からのものかを実際に判断できないため、動作中の Java SE 8 javadoc ではなく、Java SE 8 javadocjavax.annotation.Nullableへのデッドリンクを生成する場合があります。 JSR-305 javadocs へのリンク。javax.annotation.Nullableこれを修正するためにjavadocを構成する方法はありjavax.annotation.Resourceますか?

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

java - Java で @Deprecated として機能する @Stub アノテーションを作成する

一部のクラスがテスト用であることを示すために、Java で@Stub@Exampleまたはアノテーションを作成したいと思います。@Mockまた、ライブラリのユーザーがそれらを使用するのを思いとどまらせるために、これらのクラスを非推奨にするのが好きです。@NullableJSR305 に類似したものやその他のアノテーションを作成するのが好きです。

私はこれを思いついた:

そしてユースケース:

残念ながら、 を使用しているにもかかわらず、ターゲットの注釈付きクラスではなく@TypeQualifierNickname、私の@Stub注釈が Intellij および javac コンパイラによって非推奨としてマークされているようです。

javac や IDE を変更しなくても機能する方法はありますか?

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

java - StringUtils.isNotBlank によってチェックされた NPE により、Eclipse @NotNull 警告が引き続き発生する

私が使用していることがわかるように、私は@NotNullアノテーションを使用しています:

StringUtils.isNotBlank()

NPをチェックしますが、まだEclipseの警告があります。私が使用する場合

古いリンク != null

警告を表示しません。

Apache commons StringUtilsを使用するときに何が問題になるか知っている人はいますか?

NPE 警告

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

java - JSR305 OSGi Exports brave

brave コア モジュールは javax.annotation;version="[3.0.0,4)" のエクスポートを追加しました。これにより、JBoss Fuse で brave を使用して OSGi アプリケーションをデプロイする際に問題が発生します - システム バンドルはすでに javax.annotation;version=" をエクスポートしているためです。 1.0」。

findbugs(JSR305) パッケージのような開発時の依存関係がランタイムの一部としてエクスポートされるのはなぜだろうか??

これに対する回避策はありますか?? servicemix の JSR 305 バンドルを訴えて、karaf などの一般的なコンテナーに準拠した勇敢な OSGi バンドルを作成することはできませんか??