Add objectClass() and className() for QJniObject
This can be handy sometimes to avoid doing a env->GetObjectClass() call to get the jclass object. Change-Id: I015fe5ed73304338826e468e59778bcd3ceadc3b Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
This commit is contained in:
parent
3d430935cf
commit
8221b6b8c1
@ -286,12 +286,7 @@ bool QJniEnvironment::registerNativeMethods(const char *className, JNINativeMeth
|
|||||||
|
|
||||||
if (!classObject.isValid())
|
if (!classObject.isValid())
|
||||||
return false;
|
return false;
|
||||||
|
return registerNativeMethods(classObject.objectClass(), methods, size);
|
||||||
jclass clazz = d->jniEnv->GetObjectClass(classObject.object());
|
|
||||||
const bool result = registerNativeMethods(clazz, methods, size);
|
|
||||||
d->jniEnv->DeleteLocalRef(clazz);
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@ -779,10 +779,10 @@ QJniObject::~QJniObject()
|
|||||||
jstring jstring = string.object<jstring>();
|
jstring jstring = string.object<jstring>();
|
||||||
\endcode
|
\endcode
|
||||||
|
|
||||||
\note The returned object is still kept live by this QJniObject. To keep the
|
\note The returned object is still kept alive by this QJniObject. To keep the
|
||||||
object live beyond the lifetime of this QJniObject, for example to record it
|
object alive beyond the lifetime of this QJniObject, for example to record it
|
||||||
for later use, the easiest approach is to store it in another QJniObject with
|
for later use, the easiest approach is to store it in another QJniObject with
|
||||||
a suitable lifetime. Alternatively, you can make a new global reference to the
|
a suitable lifetime. Alternatively, you may create a new global reference to the
|
||||||
object and store it, taking care to free it when you are done with it.
|
object and store it, taking care to free it when you are done with it.
|
||||||
|
|
||||||
\snippet jni/src_qjniobject.cpp QJniObject scope
|
\snippet jni/src_qjniobject.cpp QJniObject scope
|
||||||
@ -792,6 +792,36 @@ jobject QJniObject::object() const
|
|||||||
return javaObject();
|
return javaObject();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\fn jclass QJniObject::objectClass() const
|
||||||
|
|
||||||
|
Returns the class object held by the QJniObject as a \c jclass.
|
||||||
|
|
||||||
|
\note The returned object is still kept alive by this QJniObject. To keep the
|
||||||
|
object alive beyond the lifetime of this QJniObject, for example to record it
|
||||||
|
for later use, the easiest approach is to store it in another QJniObject with
|
||||||
|
a suitable lifetime. Alternatively, you may create a new global reference to the
|
||||||
|
object and store it, taking care to free it when you are done with it.
|
||||||
|
|
||||||
|
\since 6.2
|
||||||
|
*/
|
||||||
|
jclass QJniObject::objectClass() const
|
||||||
|
{
|
||||||
|
return d->m_jclass;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\fn QByteArray QJniObject::className() const
|
||||||
|
|
||||||
|
Returns the name of the class object held by the QJniObject as a \c QByteArray.
|
||||||
|
|
||||||
|
\since 6.2
|
||||||
|
*/
|
||||||
|
QByteArray QJniObject::className() const
|
||||||
|
{
|
||||||
|
return d->m_className;
|
||||||
|
}
|
||||||
|
|
||||||
QJniObject QJniObject::callObjectMethodV(const char *methodName,
|
QJniObject QJniObject::callObjectMethodV(const char *methodName,
|
||||||
const char *signature,
|
const char *signature,
|
||||||
va_list args) const
|
va_list args) const
|
||||||
|
@ -68,6 +68,9 @@ public:
|
|||||||
return static_cast<T>(javaObject());
|
return static_cast<T>(javaObject());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
jclass objectClass() const;
|
||||||
|
QByteArray className() const;
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
T callMethod(const char *methodName, const char *signature, ...) const
|
T callMethod(const char *methodName, const char *signature, ...) const
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user