QtJniTypes::JObject Class
template <typename Type> class QtJniTypes::JObjectDie 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.