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())
|
||||
return false;
|
||||
|
||||
jclass clazz = d->jniEnv->GetObjectClass(classObject.object());
|
||||
const bool result = registerNativeMethods(clazz, methods, size);
|
||||
d->jniEnv->DeleteLocalRef(clazz);
|
||||
|
||||
return result;
|
||||
return registerNativeMethods(classObject.objectClass(), methods, size);
|
||||
}
|
||||
|
||||
/*!
|
||||
|
@ -779,10 +779,10 @@ QJniObject::~QJniObject()
|
||||
jstring jstring = string.object<jstring>();
|
||||
\endcode
|
||||
|
||||
\note The returned object is still kept live by this QJniObject. To keep the
|
||||
object live beyond the lifetime of this QJniObject, for example to record it
|
||||
\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 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.
|
||||
|
||||
\snippet jni/src_qjniobject.cpp QJniObject scope
|
||||
@ -792,6 +792,36 @@ jobject QJniObject::object() const
|
||||
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,
|
||||
const char *signature,
|
||||
va_list args) const
|
||||
|
@ -68,6 +68,9 @@ public:
|
||||
return static_cast<T>(javaObject());
|
||||
}
|
||||
|
||||
jclass objectClass() const;
|
||||
QByteArray className() const;
|
||||
|
||||
template <typename T>
|
||||
T callMethod(const char *methodName, const char *signature, ...) const
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user