過去,我遇到了這個問題好幾次,所以我要求在這裏什麼是最好的做法Java函數的原始參照
我的過程,變爲真幾個對象,修改它們並上升一些標誌。
boolean erros = false;
for(MyData data: allData){
//...
//@ToDo move this to a function titleCheck()
if(data.getTitle().isEmpty()){
data.setTitle('none');
erros = true;
}
if(data.getTitle().equals('BIG')){
data.setTitle('small')
}
if(data.getTitle().equals('error')){
errors = true;
}
//...
}
我需要一個功能,所以首選的語法是這樣的更新數據,並更改一個或多個標誌 :
MyData updatedData = titleCheck(MyData data, &erros){...}
但布爾值不能作爲參考,使他們爲傳遞它的工作原理是:
boolean errors = titleCheck(MyData dataForUpdate){...}
女巫..方式不太直觀(至少對我來說......從PHP背景的) 問題變得更大如果你有幾個標誌要更新。
那麼..什麼是適當的Java方式來處理這樣的結構。
*在Java中沒有任何引用通過*。 –
在java中,所有東西都是按值傳遞的 – Abubakkar
處理它的「正確」Java方法通常是您的第二個示例(您稱之爲不太直觀的示例)。還有其他一些你可以做的事情,比如將你的數據和你的布爾值放在一個容器對象中,並把它們放在一起,但是我認爲這樣會讀得更好。在許多方面,這是使用不同語言的代價,你根本無法總是按照習慣的方式去做事情。 – Thor84no