2017-06-12 18 views
6

Javaでは抽象メソッドをクラス内に持たせ、JNIを使​​用してネイティブ言語を使用して実装することができますか?抽象メソッドのネイティブ実装

例:

abstract class Mommy { 
abstract protected void call(); 
} 
class Son extends Mommy { 
native protected void call() /* 
'native code' 
*/ 
} 

それはよいが発生するか、すべてが「回避策」で結構ですランタイムエラーが期待される動作は何ですか?

+0

これを試しましたか? – Radiodef

+0

もちろん、それはコンパイルのプロセスを経ますが、バグが発生しやすいか、あるいは良い/ベストプラクティスに対して不思議ですか? –

答えて

2

実行時エラーが発生する可能性がありますか、「回避策」ですべて正常ですか?

ネイティブメソッドを(正しく)実装し、実装を含むネイティブライブラリをロードすると、すべてが機能します。

バグが発生しているか、または優れた/ベストプラクティスではないのだろうか?

ノー、ノー。

あるいは、少なくとも、それはよりバグを起こしやすいまたはネイティブコードのいずれかの使用より「ベスト・プラクティス」に対する以上ではありません。

ちなみに、あなたは本当に "ベストプラクティス"のような厄介な言葉の周りをぐるぐる前にJames Bach's "No Best Practices" articleを読むべきです。

関連する問題