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
|
* ProjectName mingli-utils
|
||||||
* ModuleName mingli-utils
|
* ModuleName mingli-utils
|
||||||
* CurrentFile build.gradle.kts
|
* CurrentFile build.gradle.kts
|
||||||
* LastUpdate 2025-09-20 14:16:07
|
* LastUpdate 2025-09-20 22:30:57
|
||||||
* UpdateUser MingLiPro
|
* UpdateUser MingLiPro
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -30,7 +30,7 @@ plugins {
|
|||||||
`java-library`
|
`java-library`
|
||||||
`maven-publish`
|
`maven-publish`
|
||||||
kotlin("jvm") version "2.2.20"
|
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 GROUPSID = project.properties["GROUPSID"] as String
|
||||||
val VERSIONS = project.properties["VERSIONS"] as String
|
val VERSIONS = project.properties["VERSIONS"] as String
|
||||||
@ -77,7 +77,9 @@ dependencies {
|
|||||||
compileOnly("com.google.code.gson:gson:2.13.1")
|
compileOnly("com.google.code.gson:gson:2.13.1")
|
||||||
compileOnly("org.mybatis:mybatis:3.5.19")
|
compileOnly("org.mybatis:mybatis:3.5.19")
|
||||||
compileOnly("com.alibaba.fastjson2:fastjson2:2.0.58")
|
compileOnly("com.alibaba.fastjson2:fastjson2:2.0.58")
|
||||||
|
|
||||||
compileOnly("com.baomidou:mybatis-plus-core:3.0.1")
|
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
|
# ProjectName mingli-utils
|
||||||
# ModuleName mingli-utils
|
# ModuleName mingli-utils
|
||||||
# CurrentFile gradle.properties
|
# CurrentFile gradle.properties
|
||||||
# LastUpdate 2025-09-20 14:22:07
|
# LastUpdate 2025-09-20 16:03:35
|
||||||
# UpdateUser MingLiPro
|
# UpdateUser MingLiPro
|
||||||
#
|
#
|
||||||
JDKVERSIONS=1.8
|
JDKVERSIONS=1.8
|
||||||
GROUPSID=com.mingliqiye.utils
|
GROUPSID=com.mingliqiye.utils
|
||||||
ARTIFACTID=mingli-utils
|
ARTIFACTID=mingli-utils
|
||||||
VERSIONS=4.1.7
|
VERSIONS=4.1.8
|
||||||
signing.keyId=B22AA93B
|
signing.keyId=B22AA93B
|
||||||
signing.password=
|
signing.password=
|
||||||
signing.secretKeyRingFile=secret.gpg
|
signing.secretKeyRingFile=secret.gpg
|
||||||
|
|||||||
@ -16,14 +16,13 @@
|
|||||||
* ProjectName mingli-utils
|
* ProjectName mingli-utils
|
||||||
* ModuleName mingli-utils.main
|
* ModuleName mingli-utils.main
|
||||||
* CurrentFile SuperStream.java
|
* CurrentFile SuperStream.java
|
||||||
* LastUpdate 2025-09-20 13:24:35
|
* LastUpdate 2025-09-21 14:22:13
|
||||||
* UpdateUser MingLiPro
|
* UpdateUser MingLiPro
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.mingliqiye.utils.stream;
|
package com.mingliqiye.utils.stream;
|
||||||
|
|
||||||
import com.mingliqiye.utils.collection.Collections;
|
import com.mingliqiye.utils.collection.Collections;
|
||||||
import com.mingliqiye.utils.foreach.ForEach;
|
|
||||||
import com.mingliqiye.utils.functions.P1Function;
|
import com.mingliqiye.utils.functions.P1Function;
|
||||||
import com.mingliqiye.utils.functions.P2Function;
|
import com.mingliqiye.utils.functions.P2Function;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
@ -887,16 +886,13 @@ public class SuperStream<T> implements Stream<T> {
|
|||||||
*/
|
*/
|
||||||
@NotNull
|
@NotNull
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public T[] toArray() {
|
public T[] toArray(Class<T> clazz) {
|
||||||
List<T> list = toAList();
|
return stream.toArray(i -> (T[]) Array.newInstance(clazz, i));
|
||||||
if (list.isEmpty()) {
|
}
|
||||||
throw new StreamEmptyException("Stream is empty");
|
|
||||||
}
|
@NotNull
|
||||||
T[] items = (T[]) Array.newInstance(list.get(0).getClass(), list.size());
|
public Object[] toArray() {
|
||||||
ForEach.forEach(list, (v, i) -> {
|
return stream.toArray();
|
||||||
items[i] = v;
|
|
||||||
});
|
|
||||||
return items;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
* ProjectName mingli-utils
|
* ProjectName mingli-utils
|
||||||
* ModuleName mingli-utils.main
|
* ModuleName mingli-utils.main
|
||||||
* CurrentFile Collection.kt
|
* CurrentFile Collection.kt
|
||||||
* LastUpdate 2025-09-20 14:03:46
|
* LastUpdate 2025-09-21 14:36:57
|
||||||
* UpdateUser MingLiPro
|
* UpdateUser MingLiPro
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -980,7 +980,14 @@ fun toArray(list: List<Char>): CharArray {
|
|||||||
* @param list 输入的 List
|
* @param list 输入的 List
|
||||||
* @return 转换后的数组
|
* @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)
|
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
|
* ProjectName mingli-utils
|
||||||
* ModuleName mingli-utils.main
|
* ModuleName mingli-utils.main
|
||||||
* CurrentFile IO.kt
|
* CurrentFile IO.kt
|
||||||
* LastUpdate 2025-09-20 11:46:19
|
* LastUpdate 2025-09-20 16:03:14
|
||||||
* UpdateUser MingLiPro
|
* UpdateUser MingLiPro
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -33,22 +33,22 @@ class IO {
|
|||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun print(vararg args: Any?) {
|
fun print(vararg args: Any?) {
|
||||||
print(" ", *args)
|
printA(" ", *args)
|
||||||
}
|
}
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun println(vararg args: Any?) {
|
fun println(vararg args: Any?) {
|
||||||
println(" ", *args)
|
printlnA(" ", *args)
|
||||||
}
|
}
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun println(sp: String = " ", vararg args: Any?) {
|
fun printlnA(sp: String, vararg args: Any?) {
|
||||||
print(" ", *args)
|
printA(" ", *args)
|
||||||
kotlin.io.println()
|
kotlin.io.println()
|
||||||
}
|
}
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun print(sp: String = " ", vararg args: Any?) {
|
fun printA(sp: String = "", vararg args: Any?) {
|
||||||
if (args.isEmpty()) {
|
if (args.isEmpty()) {
|
||||||
kotlin.io.println()
|
kotlin.io.println()
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user