2014-03-19 83 views
0

我知道java中有一個布爾對象。有沒有什麼辦法可以改變一個在java中作爲參數發送的out-ref布爾值?

我想發送一個布爾參數並在方法內改變它的值。

顯然,這不能作爲對象由應對obj的參考

所以分配一個新的值不會採取的方法的效果外傳遞完成的。

這裏是我的代碼

final Boolean finalIsShownFlag = isShownFlag; 

Runnable closeRunnable = new Runnable() { 
    @Override 
    public void run() {   
    closeTooltip(finalIsShownFlag, finalCurrentTooltip); 
    } 
}; 

isShownFlag是一個布爾成員(每它的另一個布爾成員時)的參考。

private void closeTooltip(Boolean isShown, LinearLayout tooltipLayout) { 
    if (isShown) { 
     isShown = false; 
     tooltipLayout.clearAnimation(); 
     tooltipLayout.setVisibility(View.GONE); 
    } 
    } 
+0

您可以對此使用'AtomicBoolean',或者'AtomicReference '。或者讓你的方法返回一個'boolean' ... – fge

回答

0

您可以聲明它爲instance variable,因此您每次都會更改相同的參考。

public class MyClass { 

    private Boolean isShownFlag = false; 
    private void closeTooltip(LinearLayout tooltipLayout) { 
     if(isShownFlag) {//code} 
    } 
} 

或者你可以使用AtomicBoolean作爲fge建議,在這裏,你將能夠改變相同的參考。

private void closeTooltip(AtomicBoolean isShown, LinearLayout tooltipLayout) { 
    if(isShownFlag) {//code} 
} 
相關問題