2012-05-10 13 views
3

JNIにはjタイプがあります。 intの場合はjintbooleanの場合はjbooleanのようになります。私は後者のタイプがc/C++タイプであることを理解しています。しかし、タイプはjtypeですか?本では、このタイプについてもネイティブタイプと言及しています。それはどういう意味ですか?jtype(JNIの)とC/C++のタイプの違いは何ですか?

EDIT:

JTYPEの使用は何ですか?ネイティブ型によってjni.hから

+0

C++でStringクラスを持っていると同じように、このクラス

class _jstring : public _jobject {}; typedef _jstring *jstring; 

へのポインタです。 'typedef std :: int32_t jint'のようにします。 – Pubby

+1

jni.hに「jtype」はありません。「Jni TYPEs」へのショートカットかもしれません。 – Jerome

+2

@Jerome by jtype私は_jchar、jint、jshort、jlong​​、jbyte、jdoubleを意味します。 –

答えて

3

typedef unsigned char jboolean 
typedef unsigned short jchar 
typedef short jshort 
typedef float jfloat 
typedef double jdouble 
typedef long jint 
typedef jint jsize 

彼らはネイティブCまたはネイティブのマシン同等物を意味する、Java言語のネイティブ意味するものではありません。 jのバージョンは、map Java types to native C typesを支援します。 このマッピングの利点は、基本的なJavaタイプに精通しているJavaプログラマーは、ちょうど追加されたjで同じ名前を使用し続けることができることです。彼はマシンの基本タイプにどのようにマッピングされるのか気にする必要はありません。 typedefによって注意が払われます。また、基本となるマシンのアーキテクチャが変更された場合、まだあなただけのtypedefがコメントであなたの懸念に対処

を行いますchaging、気にする必要はありません、_jstringはクラスがあります。そしてjstringは、我々はそれはおそらく、対応するタイプのためだけのtypedefです

+0

と文字列については? –

+0

@ program-o-steve私の編集 –

+1

をチェックすると、_jtype_の使用は正確に何ですか?それがちょうど型定義 –

関連する問題