2017-03-16 102 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”

公共方法
相关问题