Я думаю, что это возможно, потому что у каждого правила есть свое исключение, в некоторых случаях любая лучшая практика может быть отменена.
Например, я часто выставляю открытые статические члены конечных данных как открытые (например, константы).Я не думаю, что это вредно.
Я укажу, что эта ситуация верна и для других языков, кроме Java: C ++, C # и т. Д.
Языки не всегда должны защищать нас от нас самих,
В примере с Оли, какой вред, если я напишу это так?
public class Point {
public final int x;
public final int y;
public Point(int p, int q) {
this.x = p;
this.y = q;
}
}
Он неизменен и поточно-ориентирован.Члены данных могут быть общедоступными, но вы не можете причинить им вред.
Кроме того, это маленький грязный секрет, что «частное» в действительности не является частным в Java.Вы всегда можете использовать отражение, чтобы обойти это.
Так что расслабьтесь.Все не так плохо.