native
はjavaのキーワードです。 これは、Javaではなく、他の言語で実装されるメソッドを示すものである。 このメソッドはボディなしで宣言され、abstract
は使えません。
Syntax:
method();
Native methods は、過去にパフォーマンス上重要な部分を書くために使われましたが、Java が高速化したため、今ではあまり一般的ではありません。
- 他の言語で書かれたライブラリを java から呼び出す必要がある場合。
- 他の言語 (通常は C) からしか到達できないシステムやハードウェアリソースにアクセスする必要がある場合。 実際、実際のコンピュータと相互作用する多くのシステム関数 (たとえば、ディスクやネットワーク IO) は、ネイティブコードを呼び出しているからこそできることです。
ネイティブメソッドの記述を完了するには、C 言語のヘッダーコードを生成するツール javah
でクラスを処理する必要があります。 コード補完は、整数などの原始的な型だけを渡す場合は簡単だが、 文字列やオブジェクトを C のコードと交換する必要がある場合は、 より複雑になる。 一般に、新しいオブジェクトの作成や java で書かれたメソッドのコールバックなど、 すべて C レベルで行うことができます。
他の言語(C++ を含む)のコードを呼び出すには、 C からその言語へのブリッジを記述する必要があります。 ほとんどの言語は C から呼び出せるので、これは通常些細なことである
。