2017-06-12 87 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,然后再围绕像“最佳实践”这样的狡猾的术语。