1

这个问题与这个问题及其答案有关:

int.class 是否等于 Java 中的 Integer.class 或 Integer.TYPE?

由于 int.class 不等于 Integer.class 我如何通过 JNI 在本机级别获得 int.class Class 或其他原始类型?我需要指向 int.class 而不是 Integer.class 的 jclass 对象。

4

2 回答 2

5

本次测试

    System.out.println(Integer.TYPE == int.class);

打印true。也就是说,Integer.TYPE 是你想要的,你可以从本机代码中读取 Integer.TYPE 字段。或Class.getPrimitiveClass("int")从本机代码调用

于 2013-04-08T04:35:26.420 回答
0

在 JNI 中,原始值作为实际机器值传递。一个 int 作为一个 jint 传递,该 jint 被 typedef'd 为一个 32 位有符号整数。

http://docs.oracle.com/javase/1.5.0/docs/guide/jni/spec/types.html#wp9502

于 2013-04-08T04:28:51.767 回答