Auf dieser Seite

QtJniTypes::JObject Class

template <typename Type> class QtJniTypes::JObject

Die JObject-Vorlage im Namespace QtJniTypes ist die Basis der deklarierten Java-Typen. Mehr...

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

Öffentliche Funktionen

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

Statische öffentliche Mitglieder

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)

Detaillierte Beschreibung

Diese Vorlage wird spezialisiert, wenn das Q_DECLARE_JNI_CLASS Makro verwendet wird. Die Spezialisierung erzeugt einen eindeutigen Typ im QtJniTypes Namespace. Dies ermöglicht es dem Typsystem, die korrekte Signatur in JNI-Aufrufen abzuleiten, wenn eine Instanz des spezialisierten Typs als Parameter übergeben wird.

Instanzen können implizit in und aus QJniObject und jobject konvertiert werden und bieten die gleiche Template-API wie QJniObject, um Methoden aufzurufen und auf Eigenschaften zuzugreifen. Da Instanzen von JObject den Java-Typ kennen, den sie enthalten, benötigen APIs für den Zugriff auf statische Methoden oder Felder nicht den Klassennamen als expliziten Parameter.

Siehe auch Q_DECLARE_JNI_CLASS.

Dokumentation der Mitgliedsfunktionen

JObject::JObject()

Default-konstruiert die JObject-Instanz. Dadurch wird auch standardmäßig eine Instanz des dargestellten Java-Typs konstruiert.

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

Move-konstruiert eine JObject-Instanz aus other.

JObject::JObject(const QJniObject &other)

Konstruiert eine JObject-Instanz, die einen Verweis auf das gleiche Jobject wie other enthält.

JObject::JObject(jobject other)

Konstruiert eine JObject-Instanz, die einen Verweis auf other enthält.

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

Ruft die Instanzmethode method mit Argumenten args auf und gibt das Ergebnis vom Typ Ret zurück (sofern Ret nicht void ist). Wenn Ret ein Jobject-Typ ist, ist der zurückgegebene Wert ein QJniObject.

Siehe auch QJniObject::callMethod().

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

Ruft die statische Methode methodName mit Argumenten args auf und gibt das Ergebnis vom Typ Ret zurück (sofern Ret nicht void ist). Wenn Ret ein Jobject-Typ ist, ist der zurückgegebene Wert ein QJniObject.

Siehe auch QJniObject::callStaticMethod().

QByteArray JObject::className() const

Gibt den Namen der Java-Klasse zurück, von der dieses Objekt eine Instanz ist.

Siehe auch objectClass() und QJniObject::className().

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

Konstruiert ein Java-Objekt aus args und gibt eine JObject -Instanz zurück, die einen Verweis auf dieses Java-Objekt enthält.

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

Konstruiert eine Instanz von JObject aus object und gibt diese Instanz zurück.

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

Konstruiert ein JObject, das einen lokalen Verweis auf ref enthält, und gibt dieses Objekt zurück.

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

Gibt den Wert des Instanzfeldes field zurück.

Siehe auch QJniObject::getField().

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

Gibt den Wert des statischen Feldes field zurück.

Siehe auch QJniObject::getStaticField().

[static] bool JObject::isClassAvailable()

Gibt zurück, ob die Klasse, die diese JObject Spezialisierung darstellt, verfügbar ist.

Siehe auch QJniObject::isClassAvailable().

bool JObject::isValid() const

Gibt zurück, ob die Instanz JObject einen gültigen Verweis auf ein Jobprojekt enthält.

Siehe auch QJniObject::isValid().

jclass JObject::objectClass() const

Gibt die Java-Klasse, von der diese JObject eine Instanz ist, als jclass zurück.

Siehe auch className() und QJniObject::objectClass().

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

Registriert die Java-Methoden in methods bei der Java-Klasse, die durch die Spezialisierung JObject dargestellt wird, und gibt zurück, ob die Registrierung erfolgreich war.

Siehe auch QJniEnvironment::registerNativeMethods().

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

Setzt den Wert des Instanzfeldes field auf value.

Siehe auch QJniObject::setField().

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

Setzt das statische Feld field auf value.

Siehe auch QJniObject::setStaticField().

QString JObject::toString() const

Gibt eine QString mit einer String-Darstellung des Java-Objekts zurück.

Siehe auch 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.