Base64有许多静态编码方法,它们将byte []返回为
Base64.encodeBase64(stringToEncode.getBytes(StandardCharsets.UTF_8.name()));
MessageDigest也使用静态getInstance
进行编码/消化
new Hex().encode(stringToEncode.getBytes(StandardCharsets.UTF_8.name()));
我是否需要创建实例以获得字节数组的原因,还是有更好的方法?
例如,我目前不认为添加getBytes()
是个好主意
Hex.encodeHexString(stringToEncode).getBytes()
答案 0 :(得分:1)
没有可供您使用的静态方法,但是该类是线程安全的,因此您可以创建它的一个实例并保留它。
这是常见的习惯用法,例如ObjectMapper
之类的类或格式化对象。当然,它们通常具有超出Hex
需求的内部状态,所以也许这是设计疏忽。
我相信这些是实例方法的原因是构造函数采用Charset
,这是将char转换为字节所必需的。另一种选择是将其作为静态方法中的参数传递。两者都可以实现。