Эта тема больше основана на мнении сообщества, чем на установленном стандарте.
Если это на уровне класса, и он является окончательным, и есть только один экземпляр, если вы используете его как константу, по моему мнению, я бы использовал Underscore, поскольку это в основном константа, но это инициализируется во время выполнения.
class AClass {
private final SomeObject SOME_OBJECT;
private initInstance() {
SOME_OBJECT = ...;
}
...
}
Это может быть полезной ссылкой:
https://softwareengineering.stackexchange.com/questions/252243/naming-convention-final-fields-not-static
К чему эта ссылка сводится к тому, что хотя любой ответ будет самоуверенным, хорошей эвристикой будет спросить себя: «Это ведет себя как константа? Или оно ведет себя как поле однократной записи?»
Если это константа, которая создается во время выполнения, DO_THIS
.
Если это поле, в которое вы пишете один раз, но манипулируете позже, doThis
.