【发布时间】:2019-08-15 03:33:48
【问题描述】:
我有以下代码:
import javax.swing.*
...
UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName())
UIManager.put("ToolTip.border", BorderFactory.createEmptyBorder())
UIManager.put("PopupMenu.border", BorderFactory.createEmptyBorder())
...
我想去掉所有UIManager. 限定符,像这样:
UIManager.run {
setLookAndFeel(getCrossPlatformLookAndFeelClassName())
put("ToolTip.border", BorderFactory.createEmptyBorder())
put("PopupMenu.border", BorderFactory.createEmptyBorder())
...
}
当然,这段代码无法编译。有没有可能实现?
【问题讨论】:
-
import javax.swing.UIManager.* -
我不想在其他方法中污染命名空间。
-
如果不制作包装器,我看不到其他选项。如果您不喜欢通用名称
put,您可以使用另一个名称创建一个实用方法并调用该方法。或者创建一个object来包装对 UIManager 的每次调用,然后在该对象上调用run。
标签: kotlin extension-methods static-methods