2017-03-16 120 views
0

是否有可能讀取getIcon參數,以便稍後將方法分配給方法中的某個變量,以便根據其他條件更改圖標文件。如何在其他方法中使用參數作爲變量

private ExampleAction exampleAction = new ExampleAction("End", 
     Resources.getIcon("end22")...; 

我不想在現場改變它,但如果需要的話,稍後重新定義getIcon(「x」)。

+2

你可以在你的問題中添加更多細節嗎? – anacron

+1

除非'ExampleAction'有一個setter來更改圖標,否則不會。 –

+0

很難說不知道'ExampleAction'類。 – domsson

回答

0

使用Java 8,您可以傳入一個函數,在需要時進行調用,例如,

class ExampleAction { 
    ExampleAction(... , Supplier<Icon> s, ...) { ... } 

    Icon getIcon() { 
    return s.get(); 
    } 
} 

此外,你可以在一些地方保存圖標名稱,爲簡單起見,我將在某個類中使用變量:

class Icons { 
    String exampleIconName; 
} 

然後調用它像這樣:

Icons icons = ...;//You get it from somewhere 
new ExampleAction(..., i->Resources.getIcon(icons.exampleIconName), ...) 

然後你可以在運行時將icons.exampleIconName更改爲任何你想要的。

或者你只是傳遞Icons,存儲圖標本身就存在並替換它,如果需要:

class Icons { 
    Icon exampleIcon; 
} 

class ExampleAction { 
    ExampleAction(... , Icons icons, ...) { ... } 

    Icon getIcon() { 
    return icons.exampleIcon; 
    } 
} 
0

從我的理解是,你想讀「exampleAction」對象

只要該變量是可訪問的,這是可能的。根據你的情況,因爲這是私人所以exampleAction可以在同一類即ExampleAction內讀取

如果你想外面讀宣佈將返回對象或 創造公共的方法設置值「exampleAction」

公共方法
相關問題