Sur cette page

QtJniTypes::JObject Class

template <typename Type> class QtJniTypes::JObject

Le modèle JObject de l'espace de noms QtJniTypes est la base des types Java déclarés. Plus...

En-tête : #include <JObject>
CMake : find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake : QT += core
Depuis : Qt 6.8

Fonctions publiques

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

Membres publics statiques

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)

Description détaillée

Ce modèle est spécialisé lors de l'utilisation de la macro Q_DECLARE_JNI_CLASS. La spécialisation produit un type unique dans l'espace de noms QtJniTypes. Cela permet au système de type de déduire la signature correcte dans les appels JNI lorsqu'une instance du type spécialisé est passée en paramètre.

Les instances peuvent être implicitement converties de et vers QJniObject et jobject, et fournissent le même modèle d'API que QJniObject pour appeler des méthodes et accéder à des propriétés. Étant donné que les instances de JObject connaissent le type Java qu'elles détiennent, les API permettant d'accéder aux méthodes ou champs statiques ne nécessitent pas le nom de la classe en tant que paramètre explicite.

Voir également Q_DECLARE_JNI_CLASS.

Documentation des fonctions membres

JObject::JObject()

Construit par défaut l'instance de JObject. Cela permet également de construire par défaut une instance du type Java représenté.

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

Move-construit une instance de JObject à partir de other.

JObject::JObject(const QJniObject &other)

Construit une instance de JObject qui contient une référence au même jobject que other.

JObject::JObject(jobject other)

Construit une instance de JObject qui contient une référence à other.

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

Appelle la méthode d'instance method avec les arguments args, et renvoie le résultat de type Ret (sauf si Ret est void). Si Ret est un type d'objet de travail, la valeur renvoyée sera QJniObject.

Voir aussi QJniObject::callMethod().

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

Appelle la méthode statique methodName avec les arguments args, et renvoie le résultat de type Ret (sauf si Ret est void). Si Ret est un type jobject, la valeur renvoyée sera QJniObject.

Voir aussi QJniObject::callStaticMethod().

QByteArray JObject::className() const

Renvoie le nom de la classe Java dont cet objet est une instance.

Voir aussi objectClass() et QJniObject::className().

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

Construit un objet Java à partir de args et renvoie une instance de JObject qui contient une référence à cet objet Java.

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

Construit une instance de JObject à partir de object et renvoie cette instance.

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

Construit un objet JObject qui contient une référence locale à ref, et renvoie cet objet.

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

Renvoie la valeur du champ d'instance field.

Voir également QJniObject::getField().

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

Renvoie la valeur du champ statique field.

Voir également QJniObject::getStaticField().

[static] bool JObject::isClassAvailable()

Indique si la classe représentée par la spécialisation JObject est disponible.

Voir également QJniObject::isClassAvailable().

bool JObject::isValid() const

Indique si l'instance JObject contient une référence valide à un projet de travail.

Voir aussi QJniObject::isValid().

jclass JObject::objectClass() const

Renvoie la classe Java dont cette JObject est une instance sous forme de jclass.

Voir aussi className() et QJniObject::objectClass().

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

Enregistre les méthodes Java dans methods avec la classe Java représentée par la spécialisation JObject, et renvoie si l'enregistrement a réussi.

Voir également QJniEnvironment::registerNativeMethods().

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

Définit la valeur du champ d'instance field à value.

Voir aussi QJniObject::setField().

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

Définit le champ statique field à value.

Voir aussi QJniObject::setStaticField().

QString JObject::toString() const

Renvoie une adresse QString avec une représentation sous forme de chaîne de caractères de l'objet Java.

Voir également 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.