在Java中是否允许在类中使用抽象方法,然后使用JNI在其他语言中使用本机语言实现它。
示例:
abstract class Mommy {
abstract protected void call();
}
class Son extends Mommy {
native protected void call() /*
'native code'
*/
}
预期的行为是什么,可能发生的运行时错误或一切都很好"解决方法" ?
答案 0 :(得分:2)
预期的行为是可能发生的运行时错误还是“解决方法”一切正常?
如果您实现本机方法(正确)并加载包含实现的本机库,那么一切正常。
我想知道是否容易出错或违反任何好/最佳做法?
不,不,不。
或者至少,与使用本机代码相比,更多错误或更多反“最佳实践”。
顺便说一句,你真的应该阅读James Bach's "No Best Practices" article,然后才能围绕“最佳实践”等狡猾的术语进行调整。
答案 1 :(得分:1)
似乎工作得很好。如果您希望在本机实现之间轻松切换,这是非常酷的解决方案。
https://github.com/mkowsiak/jnicookbook/tree/master/recipeNo030
JNI Cookbook中的描述可以让您快速了解解决方案