このページでは

QtJniTypes::JObject Class

template <typename Type> class QtJniTypes::JObject

QtJniTypes 名前空間にあるJObjectテンプレートは、宣言されたJava型の基底となります。詳細...

ヘッダー: #include <qjniobject.h>
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)
JObject(const QtJniTypes::JObject<Type> &other)
JObject(QtJniTypes::JObject<Type> &&other)
~JObject()
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
QtJniTypes::JObject<Type> &operator=(QtJniTypes::JObject<Type> &&other)
QtJniTypes::JObject<Type> &operator=(const QtJniTypes::JObject<Type> &other)

静的パブリックメンバー

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)

詳細な説明

JObject<Type> は、Type が表される Java 型を指定するテンプレートクラスです。

このテンプレートは、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)

other から JObject インスタンスをムーブコンストラクタで生成します。

JObject::JObject(const QJniObject &other)

other と同じジョブジェクトへの参照を保持するJObjectインスタンスを作成します。

JObject::JObject(jobject other)

other への参照を保持するJObjectインスタンスを作成します。

[default] JObject::JObject(const QtJniTypes::JObject<Type> &other)

JObject のインスタンスをコピーして生成します。

[noexcept default] JObject::JObject(QtJniTypes::JObject<Type> &&other)

JObject のインスタンスをMoveコンストラクタで生成します。

[default] JObject::~JObject()

JObject のインスタンスを破棄します。

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

引数args を指定してインスタンスメソッドmethod を呼び出し、Ret型の結果を返します(Retがvoid でない場合)。Retがjobject型の場合、戻り値はQJniObject となります。

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

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

引数args を指定して静的メソッドmethodName を呼び出し、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)

`methods ` に、`JObject ` の特殊化によって表される Java クラスに対応する 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()も参照してください 。

[noexcept default] QtJniTypes::JObject<Type> &JObject::operator=(QtJniTypes::JObject<Type> &&other)

other をこのJObject インスタンスに割り当てます。

[default] QtJniTypes::JObject<Type> &JObject::operator=(const QtJniTypes::JObject<Type> &other)

other をこのJObject インスタンスにコピーして割り当てます。

© 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.