Scala版本升级后formatted方法报错,如何替换为合法写法?
解决Scala升级后Long转十六进制字符串的formatted弃用问题
原代码someLong.formatted("%016x")因Scala版本升级(2.12.16+)被弃用,直接交换参数易出现类型不匹配问题,以下是两种合法且推荐的替代方案:
方案一:使用String.format方法
将格式字符串作为调用者,传入Long类型变量作为参数,确保格式符与变量类型匹配:
"%016x".format(someLong)
- 格式规则
%016x表示生成16位长度、补前导零的小写十六进制字符串 - 若需要大写十六进制结果,将
x替换为X即可(即"%016X".format(someLong))
方案二:使用Scala f字符串插值器
这是Scala更简洁直观的写法,直接在字符串中嵌入变量并指定格式:
f"$someLong%016x"
- 插值器语法中,
$someLong指定要格式化的变量,%016x为格式规则,效果与方案一完全一致 - 同样支持大写格式,替换为
%016X即可
内容的提问来源于stack exchange,提问作者Forin
相关产品推荐
相关产品推荐

