[英]Findbugs issue with “Boxing/unboxing to parse a primitive” with Integer.valueOf(String)
[英]Why Integer.valueOf cannot parse the hex string back to integer
為什么下面的代碼不起作用
System.out.println(Integer.valueOf(Integer.toOctalString(-1), 8));
System.out.println(Integer.valueOf(Integer.toBinaryString(-1), 2));
System.out.println(Integer.valueOf(Integer.toHexString(-1), 16));
如果您閱讀文檔,即Integer.toOctalString(int i)
的 javadoc,您會發現:
將 integer 參數的字符串表示形式返回為基數為 8 的無符號integer。
[...]
可以通過調用
Integer.parseUnsignedInt(s, 8)
從返回的字符串s
中恢復參數的值。
Integer.toBinaryString(int i)
和Integer.toHexString(int i)
的 Javadoc 說的完全一樣,除了基數當然不同(分別為2
和16
)。
System.out.println(Integer.parseUnsignedInt(Integer.toOctalString(-1), 8));
System.out.println(Integer.parseUnsignedInt(Integer.toBinaryString(-1), 2));
System.out.println(Integer.parseUnsignedInt(Integer.toHexString(-1), 16));
Output
-1
-1
-1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.