Я пытаюсь создать пользовательские цветовые палитры для своего приложения для Android. Я начал делать это так:Абстрактные поля, реализованные статическим финальным классом?
public class Theme {
public static final class DARK {
final static int POSITIVE_GREEN = Color.rgb(0, 200, 0);
final static int NEGATIVE_RED = Color.rgb(200, 0, 0);
final static int BACKGROUND_GREEN = Color.argb(255 - 220, 0, 255, 0); //220
final static int BACKGROUND_RED = Color.argb(255 - 220, 255, 0, 0);
}
public static final class PASTEL {
final static int POSITIVE_GREEN = Color.parseColor("#326262");
final static int NEGATIVE_RED = etc
final static int BACKGROUND_GREEN = etc
final static int BACKGROUND_RED = etc
}
}
, но понял, что что-то неладно, когда я хотел, чтобы реорганизовать одно из имен полей. Имена полей должны быть абстрактными в ТЕМЕ или что-то в этом роде, но поскольку они не должны быть реалистичными классами, я не могу использовать предложенный здесь трюк конструктора: Why not abstract fields? Как мне это сделать?
Вы пробовали посмотреть в Enums для этого? – Acapulco
Вы не можете заставить разработчика переопределить определенное поле. Но вы можете заставить их переопределить метод. – Aakash