2015-01-14 51 views
-4

我有以下的方法,它返回一個byte[]轉化[]爲整數

private static final DecimalFormat timeFormat4 = new DecimalFormat("0000;0000"); 

public static byte[] getSidWithCalendar() { 
    Calendar cal = Calendar.getInstance(); 
    String val = String.valueOf(cal.get(Calendar.YEAR)); 
    val += timeFormat4.format(cal.get(Calendar.DAY_OF_YEAR)); 
    val += UUID.randomUUID().toString().replaceAll("-", ""); 

    return val.getBytes(); 
} 

我得到錯誤「不兼容的類型:字節[]不能被轉換爲int」在一行的我的調用上述函數的代碼:public int ID = getSidWithCalendar();

爲什麼我得到這個錯誤,我該如何將方法返回值轉換爲int

+2

你不能分配一個字節數組到一個int。 – Eran

+0

我們將需要'getSidWithCalendar()'的源代碼來提供幫助。 – Ocracoke

+0

@Ocracoke看看代碼。 –

回答

2

您無法隱式或顯式將byte[]轉換爲int。如果你真的想爲4個字節的byte陣列轉換爲int,用java.nio.ByteBuffer作爲實現你已經這樣做了:

ByteBuffer bb = ByteBuffer.wrap(arr); 
int value = bb.getInt(); 

雖然ByteBuffer是抽象的,該wrap方法是靜態的,不正是你想要什麼。

+0

謝謝!!我會試試看看它是否可行:-) – LWB