2017-06-12 82 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,然後再圍繞像「最佳實踐」這樣的狡猾的術語。