Base64有許多靜態(tài)編碼方法,返回 byte[] 為Base64.encodeBase64(stringToEncode.getBytes(StandardCharsets.UTF_8.name()));MessageDigest也使用靜態(tài)getInstance來編碼/摘要但Hex沒有,它只有實(shí)例方法編碼,需要?jiǎng)?chuàng)建一個(gè)實(shí)例new Hex().encode(stringToEncode.getBytes(StandardCharsets.UTF_8.name()));我是否需要?jiǎng)?chuàng)建實(shí)例來獲取字節(jié)數(shù)組,或者有更好的方法嗎?getBytes()例如,我目前認(rèn)為添加不是一個(gè)好主意Hex.encodeHexString(stringToEncode).getBytes()
1 回答

斯蒂芬大帝
TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊
沒有靜態(tài)方法可供您使用,但該類是線程安全的,因此您只需創(chuàng)建它的實(shí)例并保留它即可。
這是一些類的常見習(xí)慣用法,例如ObjectMapper
或格式化對(duì)象。當(dāng)然,它們通常擁有比Hex
需求更多的內(nèi)部狀態(tài),所以這可能是一個(gè)設(shè)計(jì)疏忽。
我相信這些實(shí)例方法的原因是構(gòu)造函數(shù)采用 a Charset
,這是將字符轉(zhuǎn)換為字節(jié)所必需的。另一種方法是將其作為靜態(tài)方法中的參數(shù)傳遞。當(dāng)然,兩者都可以實(shí)施。
添加回答
舉報(bào)
0/150
提交
取消