You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Java中创建Kotlin UInt类型并实例化MyUIntValue?

问题解决:Java中创建Kotlin UInt类型类的实例

原因说明

Kotlin的UInt是无符号整数类型,在JVM平台上并没有对应原生的无符号整数类型,而是被编译为一个带有私有构造方法的包装类。因此Java代码无法直接通过传入int值来创建接受UInt参数的Kotlin类实例——编译器尝试自动转换时会触发私有构造方法的访问限制,导致报错。

解决方案

方案1:修改Kotlin类,添加Java兼容构造方法

在Kotlin类中新增一个接受Int参数的构造方法,内部自动转为UInt,这样Java可以直接调用:

class MyUIntValue(val v: UInt) {
    // 供Java调用的构造方法
    constructor(v: Int) : this(v.toUInt())
}

Java端调用:

public static void main(String[] args) {
    System.out.println(new MyUIntValue(1));
}

方案2:不修改Kotlin类,在Java中显式创建UInt实例

通过Kotlin标准库提供的静态方法将int转为UInt实例,再传入构造方法:

import kotlin.UInt;

public static void main(String[] args) {
    UInt uintValue = UIntKt.toUInt(1);
    System.out.println(new MyUIntValue(uintValue));
}

注:UIntKt是Kotlin标准库生成的工具类,若项目模块名特殊,类名可能会带有模块前缀(如yourmodule.UIntKt)。

内容的提问来源于stack exchange,提问作者oshai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 08:56:06