2015-02-24 36 views
-2

我要回一些價值依賴於內部類的一些值:如何在java的內部類中獲得一些價值?

public boolean rename(File file) { 
    new OnResultListener() { 
     @Override 
     public void onResult(AsyncResult<CharSequence> result) { 
      // some codes 

      // Here is what I want to do 
      if (succeed) { 
       // rename return true 
      } else { 
       // rename return false 
      } 
     } 
    } 
} 
+2

返回_where_或_to who/what_? – 2015-02-24 02:23:40

+0

你的內部類的方法永遠不會被調用。所以如果這是可能的,'rename'不會返回任何東西? – immibis 2015-02-24 02:26:37

+0

@immibis這是android中的異步結果,我在我的問題中刪除了很多代碼 – roger 2015-02-24 02:35:43

回答

-1

你不能和它沒有任何意義。這些是兩個截然不同的函數,可能會在不同的線程上調用。如果你堅持要返回一些東西,你必須做的是,「重命名」函數本身應該接受一個回調函數作爲一個成功調用的參數。也就是說,如果下游調用是異步的,那麼調用它的應該也是。

-1

另一種方法是有一個調用函數(在這種情況下的「重命名」,假設它調用通知OnResultListener的函數)等待某個互斥量。然後,在接收到結果的嵌套方法中,設置一些標誌,然後調用notify()來喚醒等待的線程。

+0

爲什麼兩個答案? – 2015-02-24 02:38:09

+0

這是解決問題的兩種不同方法。 – amahfouz 2015-02-24 02:40:10

+0

在你的其他答案中,你說_你不能,它沒有任何意義。哪一個? – 2015-02-24 02:42:28