- 我有一個可變大小塊的數組,我想在其中執行一些業務邏輯。
- 我必須使用'size'參數來標識要解析和處理的字節數(總數 - 在所有塊中),處理後的結果應該是塊列表及其大小。
- 我寫了一個非常整潔地分析數據的遞歸邏輯,但是爲了使它非常簡潔,我不得不將它限制爲沿塊邊界(對齊)運行。
- 這看起來不錯,因爲我將擁有的唯一不對齊的塊將是第一塊也是最後一塊。我以前的函數可以很好地處理最後一個塊,但不是第一個。
所以,我寫了一個不同的函數來處理塊中的非對齊偏移量。Java方法需要一個大小參數,做一些工作並返回一個引用並更新方法2要使用的大小,引用和大小
我的DS:
class BlockInfo { private long blockID; private long blockSize; } public class BlockIDSet { private long offset; private int firstBlockIndex; private List<BlockInfo> resultSet; }
工作第一功能的:如果起始偏移量未對齊,解析剩餘的字節從偏移到該塊的結束,並返回
firstBlockIndex
,single BlockInfo object
並更新remaining size (numBytes)
。第二個函數將消耗
remaining size
,從firstBlockIndex +1
開始並返回list of BlockInfo objects
。
在C++中,這是很常見的爲我們傳遞參數作爲參考和更新功能其值通話中,以便更新的值可以在以後使用。據我所知,Java建議不要這樣做。 Related Question。我應該如何實現這一目標?或者是我的設計有缺陷,我應該重新做?
您可以定義一個類,將該類的一個實例作爲參數傳遞,並從被調用的方法更新該對象。您也可以不改變參數,並從您的方法返回一個自定義對象。 Java是OO語言。定義類和使用對象。 –