![]() |
1
-3
我不喜欢返回空值的解决方案。 如果可能的话,您应该返回一些空的实现,比如
比你不担心nullpointerExceptions
编辑 如果不想实现空对象,请尝试始终返回此值。
*** 编辑 *** 经过几年的经验,我不得不不同意我的第一个答案。 空可以使人有知觉,我现在就去听什鲁布的回答。 对于PUR Java代码,我仍然不喜欢NULL返回值,但是在JNI接口中,它可以实现更容易的错误处理。 |
![]() |
2
4
这是一个老问题,但我一分钟前就有了… 你在问题中说:
实际上,我只是试了一下,
碰巧回来了
所以我不认为这是你遇到减速的原因。
编辑 :
|
![]() |
3
0
你的代码有些不对称,这让我大吃一惊:你永远不会决定要返回的对象的类型,除非返回“Nothing”。显然是
|
![]() |
4
0
是否尝试返回空引用? 这是未测试的(目前没有JNI开发环境),但是您应该能够创建一个新的对空的全局引用,并像这样返回它:
编辑刚才所说的,检查是否发生了异常,但不要清除它。据我所知,这意味着它仍然被“抛出”在Java层中,所以您应该能够将它作为一个错误指示器,那么函数返回什么并不重要。事实上,根据文档,在引发异常时调用exceptionclear()/exceptiondescribe()以外的JNI函数并不“安全”。函数“慢”可能是由编写调试信息的exceptiondescribe()函数引起的。 因此,如果我正确理解这一点,那么这应该是一个行为良好的函数,在第一次发生错误时引发异常,并在随后的每个调用中返回空值(直到清除“error”):
同样,这是未测试的,因为我现在没有可用的JNI环境。 |