generated from mingliqiye/lib-tem
```
feat(stream): 优化 SuperStream 的 toArray 方法实现- 调整 toArray 方法,支持传入 Class 参数以正确创建泛型数组 - 原无参 toArray 方法改为返回 Object[],避免类型转换异常 - 移除对 ForEach 工具类的依赖 - 提升流处理中数组转换的灵活性与安全性 ``` ``` feat(collection): 改进 toArray 工具方法支持泛型数组创建 - 新增基于 reified 泛型的 toArray 扩展方法,自动推断数组类型 - 添加带 Class 参数的 toArray 重载方法,用于明确指定元素类型 - 处理空列表时直接返回空数组,避免后续操作异常 ``` ``` build(gradle): 升级 dokka 插件版本并更新项目依赖- 将 org.jetbrains.dokka 插件升级至 2.1.0-Beta 版本 - 添加 jna5.17.0 依赖用于本地库调用支持 - 引入 mybatis-plus-core 3.0.1 编译依赖 - 更新项目版本号从 4.1.7 至 4.1.8 ```
This commit is contained in:
parent
5eed682aa1
commit
683aeb2c7f
@ -16,7 +16,7 @@
|
||||
* ProjectName mingli-utils
|
||||
* ModuleName mingli-utils
|
||||
* CurrentFile build.gradle.kts
|
||||
* LastUpdate 2025-09-20 14:16:07
|
||||
* LastUpdate 2025-09-20 22:30:57
|
||||
* UpdateUser MingLiPro
|
||||
*/
|
||||
|
||||
@ -30,7 +30,7 @@ plugins {
|
||||
`java-library`
|
||||
`maven-publish`
|
||||
kotlin("jvm") version "2.2.20"
|
||||
id("org.jetbrains.dokka") version "2.0.0"
|
||||
id("org.jetbrains.dokka") version "2.1.0-Beta"
|
||||
}
|
||||
val GROUPSID = project.properties["GROUPSID"] as String
|
||||
val VERSIONS = project.properties["VERSIONS"] as String
|
||||
@ -77,7 +77,9 @@ dependencies {
|
||||
compileOnly("com.google.code.gson:gson:2.13.1")
|
||||
compileOnly("org.mybatis:mybatis:3.5.19")
|
||||
compileOnly("com.alibaba.fastjson2:fastjson2:2.0.58")
|
||||
|
||||
compileOnly("com.baomidou:mybatis-plus-core:3.0.1")
|
||||
compileOnly("net.java.dev.jna:jna:5.17.0")
|
||||
}
|
||||
|
||||
|
||||
|
@ -16,13 +16,13 @@
|
||||
# ProjectName mingli-utils
|
||||
# ModuleName mingli-utils
|
||||
# CurrentFile gradle.properties
|
||||
# LastUpdate 2025-09-20 14:22:07
|
||||
# LastUpdate 2025-09-20 16:03:35
|
||||
# UpdateUser MingLiPro
|
||||
#
|
||||
JDKVERSIONS=1.8
|
||||
GROUPSID=com.mingliqiye.utils
|
||||
ARTIFACTID=mingli-utils
|
||||
VERSIONS=4.1.7
|
||||
VERSIONS=4.1.8
|
||||
signing.keyId=B22AA93B
|
||||
signing.password=
|
||||
signing.secretKeyRingFile=secret.gpg
|
||||
|
@ -16,14 +16,13 @@
|
||||
* ProjectName mingli-utils
|
||||
* ModuleName mingli-utils.main
|
||||
* CurrentFile SuperStream.java
|
||||
* LastUpdate 2025-09-20 13:24:35
|
||||
* LastUpdate 2025-09-21 14:22:13
|
||||
* UpdateUser MingLiPro
|
||||
*/
|
||||
|
||||
package com.mingliqiye.utils.stream;
|
||||
|
||||
import com.mingliqiye.utils.collection.Collections;
|
||||
import com.mingliqiye.utils.foreach.ForEach;
|
||||
import com.mingliqiye.utils.functions.P1Function;
|
||||
import com.mingliqiye.utils.functions.P2Function;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@ -887,16 +886,13 @@ public class SuperStream<T> implements Stream<T> {
|
||||
*/
|
||||
@NotNull
|
||||
@SuppressWarnings("unchecked")
|
||||
public T[] toArray() {
|
||||
List<T> list = toAList();
|
||||
if (list.isEmpty()) {
|
||||
throw new StreamEmptyException("Stream is empty");
|
||||
}
|
||||
T[] items = (T[]) Array.newInstance(list.get(0).getClass(), list.size());
|
||||
ForEach.forEach(list, (v, i) -> {
|
||||
items[i] = v;
|
||||
});
|
||||
return items;
|
||||
public T[] toArray(Class<T> clazz) {
|
||||
return stream.toArray(i -> (T[]) Array.newInstance(clazz, i));
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Object[] toArray() {
|
||||
return stream.toArray();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -16,7 +16,7 @@
|
||||
* ProjectName mingli-utils
|
||||
* ModuleName mingli-utils.main
|
||||
* CurrentFile Collection.kt
|
||||
* LastUpdate 2025-09-20 14:03:46
|
||||
* LastUpdate 2025-09-21 14:36:57
|
||||
* UpdateUser MingLiPro
|
||||
*/
|
||||
|
||||
@ -980,7 +980,14 @@ fun toArray(list: List<Char>): CharArray {
|
||||
* @param list 输入的 List
|
||||
* @return 转换后的数组
|
||||
*/
|
||||
fun <T> toArray(list: List<T>): Array<T> {
|
||||
inline fun <reified T> toArray(list: List<T>): Array<T> {
|
||||
if (list.isEmpty())
|
||||
return arrayOf<T>()
|
||||
return SuperStream.of<T>(list)
|
||||
.toArray()
|
||||
.toArray(T::class.java)
|
||||
}
|
||||
|
||||
fun <T> toArray(list: List<T>, clazz: Class<T>): Array<T> {
|
||||
return SuperStream.of<T>(list)
|
||||
.toArray(clazz)
|
||||
}
|
||||
|
@ -16,7 +16,7 @@
|
||||
* ProjectName mingli-utils
|
||||
* ModuleName mingli-utils.main
|
||||
* CurrentFile IO.kt
|
||||
* LastUpdate 2025-09-20 11:46:19
|
||||
* LastUpdate 2025-09-20 16:03:14
|
||||
* UpdateUser MingLiPro
|
||||
*/
|
||||
|
||||
@ -33,22 +33,22 @@ class IO {
|
||||
|
||||
@JvmStatic
|
||||
fun print(vararg args: Any?) {
|
||||
print(" ", *args)
|
||||
printA(" ", *args)
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun println(vararg args: Any?) {
|
||||
println(" ", *args)
|
||||
printlnA(" ", *args)
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun println(sp: String = " ", vararg args: Any?) {
|
||||
print(" ", *args)
|
||||
fun printlnA(sp: String, vararg args: Any?) {
|
||||
printA(" ", *args)
|
||||
kotlin.io.println()
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun print(sp: String = " ", vararg args: Any?) {
|
||||
fun printA(sp: String = "", vararg args: Any?) {
|
||||
if (args.isEmpty()) {
|
||||
kotlin.io.println()
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user