DiscoveryEditorSettings

DiscoveryEditorSettings

我想在下一个方法中设置一些颜色,但是我不应该在此方法/类上进行任何计算,因为它会多次重印,这会使我的应用程序运行缓慢:

void setStyle() {
    if (fake) {
        lineColor = EditorSettings.getInstance().getColorOfElement(FAKE_ELEMENT);
    }
    else if (important) {
        lineColor = EditorSettings.getInstance().getColorOfElement(IMPORTANT_ELEMENT);
    }
}


因此,我想在代码的另一部分中进行的计算是:

EditorSettings.getInstance().getColorOfElement(FAKE_ELEMENT);


我只想在用户更改此元素的颜色时获取此计算的值。我试图将这些计算结果存储在另一个类的静态块中,但是没有用。我读到也许可以用监听器来做,但是我不知道该怎么做。有人可以帮我吗?
谢谢 :)

编辑:更多代码--->

public class DiscoveryEditorSettings {

static {
    Color COLOR_FAKE_MESSAGE = DiscoveryEditorSettings.getInstance().getColorOfElement(FAKE_MESSAGE_KEY);
}
}


然后使用它是不可能的:

if (fake) {
        lineColor = DiscoveryEditorSettings.COLOR_FAKE_MESSAGE;
    }

最佳答案

您不需要静态块,而是静态(公共)变量:

public class DiscoveryEditorSettings {
    public static Color COLOR_FAKE_MESSAGE = DiscoveryEditorSettings.getInstance().getColorOfElement(FAKE_MESSAGE_KEY);
}

09-27 03:17