[英]Java: Get Value of an object and parse it as a long
我有一個對象,它的第一個字段是一個數字(BigDecimal,int ...)。 我想將其解析為 long 但在解析它時它說方法“ValueOf”不適用於 Object。
我試過這個。
if (list != null && !list.isEmpty()) {
for (Object[] obj : list) {
Object obj1 = obj[0];
Dto dto= new Dto();
dto.setId(Long.valueOf((obj[0])));
但是有一個錯誤
調用 toString 並將其解析為 Long 值:
dto.setId(Long.parseLong(obj[0].toString()));
Long.parseLong(obj[0].toString());
Long.parseLong()
期望 String 里面沒有任何格式符號。
如果您不關心格式,請考慮使用Long.toString()
將長值轉換為字符串並使用Long.parseLong()
將其轉換回來。
還有這個方法: Long.valueOf(str)
; 不同之處在於parseLong
返回一個primitive long
而valueOf
返回一個new Long() object
。
更有效的方法是將其強制轉換為 Number。
public static long asLong(Object o) {
return o instanceof Number
? ((Number) o).longValue()
: Long.parseLong(o.toString());
}
注意:這以不同的方式處理錯誤情況。 例如,如果您有new BigDecimal("2.5")
使用 longValue() 將返回2
但 Long.parseLong("2.5") 將引發異常。 這取決於你喜歡什么樣的行為。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.