Base64有许多静态编码方法,返回 byte[] 为Base64.encodeBase64(stringToEncode.getBytes(StandardCharsets.UTF_8.name()));MessageDigest也使用静态getInstance来编码/摘要但Hex没有,它只有实例方法编码,需要创建一个实例new Hex().encode(stringToEncode.getBytes(StandardCharsets.UTF_8.name()));我是否需要创建实例来获取字节数组,或者有更好的方法吗?getBytes()例如,我目前认为添加不是一个好主意Hex.encodeHexString(stringToEncode).getBytes()
1 回答
斯蒂芬大帝
TA贡献1827条经验 获得超8个赞
没有静态方法可供您使用,但该类是线程安全的,因此您只需创建它的实例并保留它即可。
这是一些类的常见习惯用法,例如ObjectMapper
或格式化对象。当然,它们通常拥有比Hex
需求更多的内部状态,所以这可能是一个设计疏忽。
我相信这些实例方法的原因是构造函数采用 a Charset
,这是将字符转换为字节所必需的。另一种方法是将其作为静态方法中的参数传递。当然,两者都可以实施。
添加回答
举报
0/150
提交
取消