📄 java_staticfield.h
字号:
// JAVA_StaticField.h: interface for the JAVA_StaticField class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(__JAVA_StaticField_h__)
#define __JAVA_StaticField_h__
#include "Java_Object.h"
#include "Java_Class.h"
#include "JAVA_VM.H"
#include "JAVA_Config.h"
struct s_JAVA_StaticField{
s_JAVA_StaticField();
JNI_FieldID m_FieldID;
JNI_Object m_Object;
JNI_Env* m_lpEnv;
JNI_Class m_Class;
void setMethod(JNI_Env* _lpEnv,JNI_FieldID _m,JNI_Object _o,JNI_Class _c);
void clear();
bool loadField(JAVA_Object & _object,const char* name,const char * sig);
void _setEnv_Mul()
{
m_lpEnv = JAVA_VM::getInstance()->getEnv();
}
};
class JAVA_StaticField_Base
{
public:
bool loadField(JAVA_Object & _object,const char* name,const char * sig)
{
return m_Field.loadField(_object,name,sig);
}
protected:
s_JAVA_StaticField m_Field;
};
template<typename _Type = JNI_Object>
class JAVA_StaticField : public JAVA_StaticField_Base
{
public:
typedef _Type _FieldType;
_FieldType get()
{
return m_Field.m_lpEnv->GetStaticObjectField(m_Field.m_Class,m_Field.m_FieldID);
}
JNI_Void set(const _FieldType& _FieldValue)
{
m_Field.m_lpEnv->SetStaticObjectField(m_Field.m_Class,m_Field.m_FieldID,_FieldValue);
}
};
#define loadJavaStaticField(m,name,sig) if(!(m).loadField(*this,name,sig))\
{ SHOWMESSAGE("JavaField:" ## name ## " " ## sig ## " unload!");return false;}
/*
//JNI_Object
#ifdef JNI_StaticFieldType
#undef JNI_StaticFieldType
#endif
#ifdef JNI_GetStaticField
#undef JNI_GetStaticField
#endif
#ifdef JNI_SetStaticField
#undef JNI_SetStaticField
#endif
#define JNI_StaticFieldType JNI_Object
#define JNI_GetStaticField GetStaticObjectField
#define JNI_SetStaticField SetStaticObjectField
#include "JAVA_CallStaticField.h"
*/
//JNI_Boolean
#ifdef JNI_StaticFieldType
#undef JNI_StaticFieldType
#endif
#ifdef JNI_GetStaticField
#undef JNI_GetStaticField
#endif
#ifdef JNI_SetStaticField
#undef JNI_SetStaticField
#endif
#define JNI_SetStaticField SetStaticBooleanField
#define JNI_StaticFieldType JNI_Boolean
#define JNI_GetStaticField GetStaticBooleanField
#include "JAVA_CallStaticField.h"
//JNI_Byte
#ifdef JNI_StaticFieldType
#undef JNI_StaticFieldType
#endif
#ifdef JNI_GetStaticField
#undef JNI_GetStaticField
#endif
#ifdef JNI_SetStaticField
#undef JNI_SetStaticField
#endif
#define JNI_GetStaticField GetStaticByteField
#define JNI_StaticFieldType JNI_Byte
#define JNI_SetStaticField SetStaticByteField
#include "JAVA_CallStaticField.h"
//JNI_Char
#ifdef JNI_StaticFieldType
#undef JNI_StaticFieldType
#endif
#ifdef JNI_GetStaticField
#undef JNI_GetStaticField
#endif
#ifdef JNI_SetStaticField
#undef JNI_SetStaticField
#endif
#define JNI_SetStaticField SetStaticCharField
#define JNI_StaticFieldType JNI_Char
#define JNI_GetStaticField GetStaticCharField
#include "JAVA_CallStaticField.h"
//JNI_Short
#ifdef JNI_StaticFieldType
#undef JNI_StaticFieldType
#endif
#ifdef JNI_GetStaticField
#undef JNI_GetStaticField
#endif
#ifdef JNI_SetStaticField
#undef JNI_SetStaticField
#endif
#define JNI_SetStaticField SetStaticShortField
#define JNI_GetStaticField GetStaticShortField
#define JNI_StaticFieldType JNI_Short
#include "JAVA_CallStaticField.h"
//JNI_Int
#ifdef JNI_StaticFieldType
#undef JNI_StaticFieldType
#endif
#ifdef JNI_GetStaticField
#undef JNI_GetStaticField
#endif
#ifdef JNI_SetStaticField
#undef JNI_SetStaticField
#endif
#define JNI_SetStaticField SetStaticIntField
#define JNI_StaticFieldType JNI_Int
#define JNI_GetStaticField GetStaticIntField
#include "JAVA_CallStaticField.h"
//JNI_Long
#ifdef JNI_StaticFieldType
#undef JNI_StaticFieldType
#endif
#ifdef JNI_GetStaticField
#undef JNI_GetStaticField
#endif
#ifdef JNI_SetStaticField
#undef JNI_SetStaticField
#endif
#define JNI_SetStaticField SetStaticLongField
#define JNI_GetStaticField GetStaticLongField
#define JNI_StaticFieldType JNI_Long
#include "JAVA_CallStaticField.h"
//JNI_Float
#ifdef JNI_StaticFieldType
#undef JNI_StaticFieldType
#endif
#ifdef JNI_GetStaticField
#undef JNI_GetStaticField
#endif
#ifdef JNI_SetStaticField
#undef JNI_SetStaticField
#endif
#define JNI_StaticFieldType JNI_Float
#define JNI_GetStaticField GetStaticFloatField
#define JNI_SetStaticField SetStaticFloatField
#include "JAVA_CallStaticField.h"
//JNI_Double
#ifdef JNI_StaticFieldType
#undef JNI_StaticFieldType
#endif
#ifdef JNI_GetStaticField
#undef JNI_GetStaticField
#endif
#ifdef JNI_SetStaticField
#undef JNI_SetStaticField
#endif
#define JNI_GetStaticField GetStaticDoubleField
#define JNI_SetStaticField SetStaticDoubleField
#define JNI_StaticFieldType JNI_Double
#include "JAVA_CallStaticField.h"
#if defined(JNI_SetStaticField)
#undef JNI_SetStaticField
#endif //#if defined(JNI_SetStaticField)
#if defined(JNI_GetStaticField)
#undef JNI_GetStaticField
#endif //#if defined(JNI_GetStaticField)
#if defined(JNI_StaticFieldType)
#undef JNI_StaticFieldType
#endif //#if defined(JNI_StaticFieldType)
#endif // !defined(__JAVA_StaticField_h__)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -