リンク: http://download.Java.net/jdk8/docs/api/Java/lang/annotation/Native.html
Java 8)には、@ Nativeアノテーションがあります。
定数値を定義するフィールドがネイティブコードから参照される可能性があることを示します。注釈は、ネイティブヘッダーファイルを生成するツールによってヒントとして使用される場合があり、ヘッダーファイルが必要かどうか、必要な場合はどの宣言を含むかを決定します。
問題は次のとおりです:何のために?この機能によってどの問題が効率的に解決されるかについて何か考えがありますか?
メッセージングで使用される定数を定義するヘッダーを想像してみてください。会話の1つのパーティがC++で開発されている可能性があり、彼らはヘッダーを#include
したいと考えています。現在、2つの類似しているが別々のファイルを維持することはリスクです。 @Native
定数からC++ヘッダーを導出する方が安全です。
良い例は、Java 8クラスの@nativeであるserialVersionUID
です。
このようにして、Javaプログラムの拡張機能がシリアルバージョンのuidを簡単に参照できるようにするため、適切なクラスを参照するようにします。
2つの理由があります:1。Java CUDAのような低レベルAPIの「ボクシング」クラスの実装-すべての低レベルAPI定数を宣言する単一のインターフェイスを管理する方が両方を管理するよりもはるかに安全ですJavaおよび異なる低レベルAPIバージョンのヘッダーファイル。2。getInstance()のような静的ファクトリメソッド用に個別のアノテーションも必要です。これは、非常に人気のあるいくつかのデザインパターンを提供できます。対応するJNIコードは次のようになります。簡単に生成できますが、手動でコーディングすると非常に冗長で信頼性が低くなります。