QJniArrayBase Class
QJniArrayBaseクラスは、QJniArray のための、型に依存しない共通APIを提供します。詳細...
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: |
パブリック型
パブリック関数
bool | isEmpty() const |
bool | isValid() const |
T | object() const |
QJniArrayBase::size_type | size() const |
QJniObject | operator QJniObject() const |
静的パブリックメンバ
auto | fromContainer(Container &&container) |
保護された関数
void | swap(QJniArrayBase &other) |
メンバ関数ドキュメント
[static]
template <typename Container, QJniArrayBase::if_compatible_source_container<Container> = true> auto QJniArrayBase::fromContainer(Container &&container)
container のデータを保持する Java 配列を作成し、それをラップしたQJniArray インスタンスを返します。
この関数は、Container
がJNI type または同等の C++ 型の要素を格納するコンテナであり、前方イテレータを提供する場合にのみ、オーバーロード解決に参加します。
構築されたQJniArray の特殊化は、container の値型に依存します。Container<T>
(例えば、QList<T>
)の場合、以下の例外を除いて、通常はQJniArray<T>
になります:
コンテナ | 特殊化 |
---|---|
QByteArray | QJniArray<jbyte |
QStringList | QJniArray<jstring> |
コンテナ::value_type | 特殊化 |
QJniObject | QJniArray<ジョブジェクト |
QJniArray::toContainer()も参照の こと。
bool QJniArrayBase::isEmpty() const
配列のサイズが0の場合はtrue
を返し、それ以外の場合はfalse
を返します。
invalid 配列は常に空です。
isValid()
size()
bool QJniArrayBase::isValid() const
QJniArray オブジェクトが有効な `jobject` をラップしているかどうかを返す。無効なQJniArray インスタンスに対しては、object() はnullptr
を返す。無効なオブジェクトを繰り返し処理しても安全であり (begin() は end() と同じ結果を返します)、無効な配列に対してtoContainer() を呼び出すと空のコンテナが返されます。
QJniObject::isValid()、object()、QJniArray::toContainer()も参照 。
template <typename T = jobject> T QJniArrayBase::object() const
QJniArray が保持するオブジェクトを T 型として返す。JNI Object Types のいずれかである。
QJniArrayBase::size_type QJniArrayBase::size() const
配列のサイズを返します。
[noexcept protected]
void QJniArrayBase::swap(QJniArrayBase &other)
この配列オブジェクトをother と交換する。この関数は非常に高速で、失敗することはない。
QJniObject QJniArrayBase::operator QJniObject() const
このQJniArray インスタンスと同じjobject
をラップしたQJniObject を返します。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。