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: |
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.
Constraints
Participates in overload resolution only 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 operation is very fast and never fails.
QJniObject QJniArrayBase::operator QJniObject() const
Returns a QJniObject wrapping the same jobject as this QJniArray instance.