是否可以调用JVM的内置本机代码,即java.lang和java.io中各种类调用的代码?换句话说,您是否可以绕过内置的Java API来访问各种系统级调用,例如文件系统访问?我知道我可以通过构建我自己的本机代码库并通过JNI调用它来实现这一点,但是对于已经内置在JVM中的功能而言,不需要额外的本机库也是优雅的。
答案 0 :(得分:6)
不,你不能。它是故意设计的;如果可以的话,你会覆盖API合约。
无论如何,标准库包装器代码非常轻微,而且对于JIT编译器,你不应该注意到任何速度影响。
此外,这些方法的实现不是API规范的一部分。什么是Java的一个实现的“本机”不一定是另一个。
答案 1 :(得分:0)
当然,您可以使用反射来调用提供代码可信的方法。但是,非公共API在更新和实现之间可能会发生变化,因此非常无意义且绝对不优雅。
答案 2 :(得分:-1)
如果您希望Native IO使用NIO类。