Преимущества наличия Java-класса только с общедоступными статическими конечными полями?

Я просматриваю код своей работы от другого сотрудника и наткнулся на класс, состоящий только из общедоступных статических конечных полей. Какая от этого польза и как ее можно использовать? Я предполагаю, что это упрощает получение информации из тегов XML. Какие-нибудь другие идеи или знания?


person banjokaboom    schedule 26.05.2011    source источник
comment
Это зависит от типа каждого элемента в классе, но если все они одного типа, то его, вероятно, можно превратить в enum.   -  person pickypg    schedule 26.05.2011
comment
Удален тег XML, так как этот вопрос не имеет ничего общего с XML.   -  person Michael Kay    schedule 27.05.2011


Ответы (4)


Распространенной идиомой Java является определение (своего рода) констант, чтобы избежать кодирования фиксированных («магических» - возможно, дублированных и трудно поддающихся рефакторингу) значений в коде.

https://softwareengineering.stackexchange.com/questions/59642/best-practices-for-constants < / а>

http://www.javapractices.com/topic/TopicAction.do?Id=2

Перечисления Java и статические константы

Лучшая практика для глобальных констант, включающих магические числа

person leonbloy    schedule 26.05.2011

Это распространенный (хотя и плохой) способ в Java иметь набор постоянных значений по той или иной причине. Кроме того, если это был более старый код Java, это был обычный способ реализации перечислений до того, как для них появилась языковая поддержка.

person JohnnyO    schedule 26.05.2011
comment
Что было бы лучше? Не все константы образуют наборы связанных значений, которые могут быть реализованы как перечисления. - person Michael Borgwardt; 26.05.2011

Обычно мы используем его для хранения значений констант.

Например:

public static final String USER_ADMIN="admin";

См. также

person jmj    schedule 26.05.2011

Он используется для хранения констант, которые потребуются для одного / нескольких исходных файлов.

public static final String username="admin";

Но для этого я бы предпочел использовать interface вместо class. Поскольку любой класс может его реализовать, это поможет мне больше в моих целях. Хотя этот выбор зависит от требований.

person Bhushan    schedule 26.05.2011