是否有可能读取getIcon参数,以便稍后将方法分配给方法中的某个变量,以便根据其他条件更改图标文件。如何在其他方法中使用参数作为变量
private ExampleAction exampleAction = new ExampleAction("End",
Resources.getIcon("end22")...;
我不想在现场改变它,但如果需要的话,稍后重新定义getIcon(“x”)。
是否有可能读取getIcon参数,以便稍后将方法分配给方法中的某个变量,以便根据其他条件更改图标文件。如何在其他方法中使用参数作为变量
private ExampleAction exampleAction = new ExampleAction("End",
Resources.getIcon("end22")...;
我不想在现场改变它,但如果需要的话,稍后重新定义getIcon(“x”)。
使用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;
}
}
从我的理解是,你想读“exampleAction”对象
只要该变量是可访问的,这是可能的。根据你的情况,因为这是私人所以exampleAction可以在同一类即ExampleAction内读取
如果你想外面读宣布将返回对象或 创造公共的方法设置值“exampleAction”
公共方法
你可以在你的问题中添加更多细节吗? – anacron
除非'ExampleAction'有一个setter来更改图标,否则不会。 –
很难说不知道'ExampleAction'类。 – domsson