QJniArrayBase Class

The QJniArrayBase class provides common, type-independent APIs for QJniArray. More...

Header: #include <QJniArrayBase>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
Since: Qt 6.8
Inherited By:

QJniArray

Public Types

Public Functions

bool isEmpty() const
bool isValid() const
T object() const
QJniArrayBase::size_type size() const
QJniObject operator QJniObject() const

Static Public Members

auto fromContainer(Container &&container)

Protected Functions

void swap(QJniArrayBase &other)

Detailed Description

Member Type Documentation

[alias] QJniArrayBase::size_type

A 32 bit integer.

Member Function Documentation

[static] template <typename Container, QJniArrayBase::if_compatible_source_container<Container> = true> auto QJniArrayBase::fromContainer(Container &&container)

Creates a Java array holding the data in container, and returns a QJniArray instance that wraps it.

This function only participates in overload resolution if Container is a container that stores elements of a JNI type or equivalent C++ type, and provides a forward iterator.

The specialization of the constructed QJniArray depends on the value type of the container. For a Container<T> (such as e.g. QList<T>) it will typically be QJniArray<T>, with the following exceptions:

ContainerSpecialization
QByteArrayQJniArray<jbyte>
QStringListQJniArray<jstring>
Container::value_typeSpecialization
QJniObjectQJniArray<jobject>

See also QJniArray::toContainer().

bool QJniArrayBase::isEmpty() const

Returns true if the array has size 0; otherwise returns false.

An invalid array is always empty.

isValid(), size()

bool QJniArrayBase::isValid() const

Returns whether the QJniArray object wraps a valid `jobject`. For invalid QJniArray instances, object() returns nullptr. Iterating over an invalid object is safe (begin() will return the same as end()), and calling toContainer() on an invalid array will return an empty container.

See also QJniObject::isValid(), object(), and QJniArray::toContainer().

template <typename T = jobject> T QJniArrayBase::object() const

Returns the object held by the QJniArray as type T, which can be one of the JNI Object Types.

QJniArrayBase::size_type QJniArrayBase::size() const

Returns the size of the array.

[noexcept protected] void QJniArrayBase::swap(QJniArrayBase &other)

Swaps this array object with other. This function is very fast and never fails.

QJniObject QJniArrayBase::operator QJniObject() const

Returns a QJniObject wrapping the same jobject as this QJniArray instance.