- Qt 6.8
- Qt Core
- C++ Classes
- QJniArrayBase
- Qt 6.8.1 Reference Documentation

# 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

- List of all members, including inherited members

## Public Types

| size_type

## 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:

Container | Specialization
--- | ---
QByteArray | QJniArray<jbyte>
QStringList | QJniArray<jstring>
Container::value_type | Specialization
QJniObject | QJniArray<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.