이 페이지에서

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(jobject other)

other 에 대한 참조를 보유하는 JObject 인스턴스를 생성합니다.

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

JObject 의 인스턴스를 복사 생성합니다.

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

JObject 의 인스턴스를 생성합니다.

[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)

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()도 참조하십시오 .

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