En esta página

QtJniTypes::JObject Class

template <typename Type> class QtJniTypes::JObject

La plantilla JObject del espacio de nombres QtJniTypes es la base de los tipos Java declarados. Más...

Cabecera: #include <JObject>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
Desde: Qt 6.8

Funciones Públicas

JObject()
JObject(QJniObject &&other)
JObject(const QJniObject &other)
JObject(jobject other)
auto callMethod(const char *method, Args &&... args) const
QByteArray className() const
auto getField(const char *field) const
bool isValid() const
jclass objectClass() const
auto setField(const char *field, T &&value)
QString toString() const

Miembros públicos estáticos

auto callStaticMethod(const char *methodName, Args &&... args)
QtJniTypes::JObject<Type> construct(Args &&... args)
QtJniTypes::JObject<Type> fromJObject(jobject object)
QtJniTypes::JObject<Type> fromLocalRef(jobject ref)
auto getStaticField(const char *field)
bool isClassAvailable()
bool registerNativeMethods(std::initializer_list<JNINativeMethod> methods)
auto setStaticField(const char *field, T &&value)

Descripción Detallada

Esta plantilla se especializa cuando se utiliza la macro Q_DECLARE_JNI_CLASS. La especialización produce un tipo único en el espacio de nombres QtJniTypes. Esto permite al sistema de tipos deducir la firma correcta en las llamadas JNI cuando una instancia del tipo especializado se pasa como parámetro.

Las instancias se pueden convertir implícitamente a y desde QJniObject y jobject, y proporcionan la misma API de plantilla que QJniObject para llamar a métodos y acceder a propiedades. Dado que las instancias de JObject conocen el tipo Java que contienen, las API para acceder a métodos o campos estáticos no requieren el nombre de la clase como parámetro explícito.

Véase también Q_DECLARE_JNI_CLASS.

Documentación de funciones miembro

JObject::JObject()

Construye por defecto una instancia de JObject. Esto también construye por defecto una instancia del tipo Java representado.

[noexcept] JObject::JObject(QJniObject &&other)

Move-construye una instancia JObject a partir de other.

JObject::JObject(const QJniObject &other)

Construye una instancia de JObject que contiene una referencia al mismo jobject que other.

JObject::JObject(jobject other)

Construye una instancia de JObject que contiene una referencia a other.

template <typename Ret = void, typename... Args> auto JObject::callMethod(const char *method, Args &&... args) const

Llama al método de instancia method con argumentos args, y devuelve el resultado del tipo Ret (a menos que Ret sea void). Si Ret es un tipo jobject, entonces el valor devuelto será un QJniObject.

Véase también QJniObject::callMethod().

[static] template <typename Ret = void, typename... Args> auto JObject::callStaticMethod(const char *methodName, Args &&... args)

Llama al método estático methodName con argumentos args, y devuelve el resultado del tipo Ret (a menos que Ret sea void). Si Ret es un tipo jobject, entonces el valor devuelto será un QJniObject.

Véase también QJniObject::callStaticMethod().

QByteArray JObject::className() const

Devuelve el nombre de la clase Java de la que este objeto es una instancia.

Véase también objectClass() y QJniObject::className().

[static] template <typename... Args> QtJniTypes::JObject<Type> JObject::construct(Args &&... args)

Construye un objeto Java a partir de args y devuelve una instancia de JObject que contiene una referencia a ese objeto Java.

[static] QtJniTypes::JObject<Type> JObject::fromJObject(jobject object)

Construye una instancia de JObject a partir de object y la devuelve.

[static] QtJniTypes::JObject<Type> JObject::fromLocalRef(jobject ref)

Construye un JObject que contiene una referencia local a ref, y devuelve ese objeto.

template <typename T> auto JObject::getField(const char *field) const

Devuelve el valor del campo de instancia field.

Véase también QJniObject::getField().

[static] template <typename T> auto JObject::getStaticField(const char *field)

Devuelve el valor del campo estático field.

Véase también QJniObject::getStaticField().

[static] bool JObject::isClassAvailable()

Devuelve si la clase que representa esta especialización JObject está disponible.

Véase también QJniObject::isClassAvailable().

bool JObject::isValid() const

Devuelve si la instancia JObject contiene una referencia válida a un jobject.

Véase también QJniObject::isValid().

jclass JObject::objectClass() const

Devuelve la clase Java de la que este JObject es una instancia como jclass.

Véase también className() y QJniObject::objectClass().

[static] bool JObject::registerNativeMethods(std::initializer_list<JNINativeMethod> methods)

Registra los métodos Java en methods con la clase Java representada por la especialización JObject, y devuelve si el registro se ha realizado correctamente.

Véase también QJniEnvironment::registerNativeMethods().

template <typename Ret = void, typename T> auto JObject::setField(const char *field, T &&value)

Establece el valor del campo de instancia field en value.

Véase también QJniObject::setField().

[static] template <typename Ret = void, typename T> auto JObject::setStaticField(const char *field, T &&value)

Establece el campo estático field en value.

Véase también QJniObject::setStaticField().

QString JObject::toString() const

Devuelve un QString con una representación de cadena del objeto Java.

Véase también QJniObject::toString().

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.