このページでは

QtJniTypes::JObject Class

template <typename Type> class QtJniTypes::JObject

QtJniTypes 名前空間の 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 型の結果を返す(Retvoid でない限り)。Ret が jobject 型の場合、返される値はQJniObject となります。

QJniObject::callMethod()も参照してください

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

静的メソッドmethodName を引数args で呼び出し、Ret 型の結果を返す(Retvoid でない限り)。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)

静的フィールドfieldvalue に設定する。

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.