QtJniTypes::JObject Class
template <typename Type> class QtJniTypes::JObjectQtJniTypes 名前空間の JObject テンプレートは、宣言された Java 型のベースです。さらに...
| ヘッダー | #include <JObject> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core)target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| 以来: | Qt 6.8 |
パブリック関数
| 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 |
静的パブリックメンバ
| 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) |
詳しい説明
このテンプレートは、Q_DECLARE_JNI_CLASS マクロを使用するときに特殊化されます。この特殊化により、QtJniTypes 名前空間に一意な型が生成されます。これにより、特殊化された型のインスタンスがパラメータとして渡されたとき、型システムが JNI 呼び出しで正しいシグニチャを推測できるようになります。
インスタンスは、QJniObject や jobject との間で暗黙的に変換することができ、QJniObject と同じテンプレート API を提供して、メソッドを呼び出したりプロパティにアクセスしたりすることができます。JObjectのインスタンスは、保持しているJava型について知っているので、静的メソッドやフィールドにアクセスするAPIは、明示的なパラメータとしてクラス名を必要としません。
Q_DECLARE_JNI_CLASSも参照してください 。
メンバ関数ドキュメント
JObject::JObject()
デフォルトでは、JObject インスタンスを構築します。これもデフォルトで、表現された Java 型のインスタンスを構築します。
[noexcept] JObject::JObject(QJniObject &&other)
Move -other から JObject インスタンスを構築します。
JObject::JObject(const QJniObject &other)
other と同じjobjectへの参照を保持するJObjectインスタンスを構築する。
JObject::JObject(jobject other)
other への参照を保持する JObject インスタンスを構築する。
template <typename Ret = void, typename... Args> auto JObject::callMethod(const char *method, Args &&... args) const
インスタンスメソッドmethod を引数args で呼び出し、Ret 型の結果を返す(Ret がvoid でない限り)。Ret が jobject 型の場合、返される値はQJniObject となります。
QJniObject::callMethod()も参照してください 。
[static] template <typename Ret = void, typename... Args> auto JObject::callStaticMethod(const char *methodName, Args &&... args)
静的メソッドmethodName を引数args で呼び出し、Ret 型の結果を返す(Ret がvoid でない限り)。Ret が jobject 型の場合、返される値はQJniObject となります。
QJniObject::callStaticMethod()も参照してください 。
QByteArray JObject::className() const
このオブジェクトがインスタンスである Java クラスの名前を返します。
objectClass() およびQJniObject::className()も参照 。
[static] template <typename... Args> QtJniTypes::JObject<Type> JObject::construct(Args &&... args)
args から Java オブジェクトを構築し、その Java オブジェクトへの参照を保持するJObject インスタンスを返します。
[static] QtJniTypes::JObject<Type> JObject::fromJObject(jobject object)
object からJObject インスタンスを構築し、そのインスタンスを返します。
[static] QtJniTypes::JObject<Type> JObject::fromLocalRef(jobject ref)
ref へのローカル参照を保持するJObject を構築し、そのオブジェクトを返す。
template <typename T> auto JObject::getField(const char *field) const
インスタンス・フィールドfield の値を返す。
QJniObject::getField()も参照 。
[static] template <typename T> auto JObject::getStaticField(const char *field)
静的フィールドfield の値を返す。
QJniObject::getStaticField()も参照 。
[static] bool JObject::isClassAvailable()
このJObject 特化が表すクラスが利用可能かどうかを返します。
QJniObject::isClassAvailable()も参照してください 。
bool JObject::isValid() const
JObject インスタンスが jobject への有効な参照を保持しているかどうかを返します。
QJniObject::isValid()も参照してください 。
jclass JObject::objectClass() const
このJObject がインスタンスである Java クラスを jclass として返します。
className() およびQJniObject::objectClass()も参照してください 。
[static] bool JObject::registerNativeMethods(std::initializer_list<JNINativeMethod> methods)
JObject の特殊化によって表される Java クラスにmethods の Java メソッドを登録し、登録が成功したかどうかを返します。
QJniEnvironment::registerNativeMethods()も参照してください 。
template <typename Ret = void, typename T> auto JObject::setField(const char *field, T &&value)
インスタンス・フィールドfield の値をvalue に設定する。
QJniObject::setField()も参照のこと 。
[static] template <typename Ret = void, typename T> auto JObject::setStaticField(const char *field, T &&value)
静的フィールドfield をvalue に設定する。
QJniObject::setStaticField()も参照のこと 。
QString JObject::toString() const
Java オブジェクトの文字列表現をQString で返します。
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.