У меня есть класс, который должен работать как утилита. Мне не нужен его экземпляр, все, что он содержит, - это static
и static
. Итак, что лучший способ сделать это? Сделать это final
с private
конструктором как Math
класс в java или просто сделать его конструктор private
без его создания final
?Лучший способ сделать класс в качестве утилиты?
ответ
private
конструктор достаточно, нет необходимости, чтобы отметить класс final
, по имея частный конструктор, мы не можем подклассифицировать его
Если вы сделаете конструктор private
, вы все равно можете получить к нему доступ, используя reflection
.
Лучше подход бросить AssertionError
public class Util {
private Util() {
throw new AssertionError("Can't instantiate");
}
// static methods
}
Ниже код для создания экземпляра закрытый конструктор
public class Test {
public static void main(String[] args) {
try {
Constructor<Util> utilC = Util.class.getDeclaredConstructor();
utilC.setAccessible(true);
Util u = utilC.newInstance(); // instance
} catch (Exception e) {
// exception handling
}
}
}
для класса Util, вам не нужно предоставлять constructor.because эти функции являются статическими, вы можете использовать, как это: Util.a()
Я уверен, что он знает преимущества статических методов. Он задается вопросом, должен ли он сделать класс абстрактным или окончательным или не финальным с помощью частного конструктора. Он в основном спрашивает, какой из них считается лучшей практикой. – alexbt
thanks.in мой взгляд, если класс предоставляет только статические методы, лучше использовать частный конструктор – Melody4java
- 1. Лучший способ сделать класс для объекта?
- 2. Какой лучший способ сделать класс CSS конкретным?
- 3. Как структурировать класс утилиты
- 4. Лучший способ унаследовать класс данными?
- 5. Лучший способ сделать этот общий абстрактный класс в C#?
- 6. Лучший способ сделать это ..?
- 7. лучший способ сделать кнопки
- 8. Лучший способ сделать проверку
- 9. Лучший способ сделать наложение
- 10. Лучший способ сделать это?
- 11. лучший способ сделать это?
- 12. Лучший способ сделать заставку
- 13. Лучший способ сделать это?
- 14. найти класс лучший способ - Jquery
- 15. Лучший способ сделать центральный SqlConnection
- 16. Класс утилиты веб-приложений
- 17. Лучший способ структурирования C# Класс
- 18. javascript: Лучший способ создать класс
- 19. Angular 2 - Лучший способ сделать класс доступным во всем мире
- 20. Django - модель и класс сериализатора, лучший способ сделать
- 21. Лучший способ вернуть строку в качестве параметра в Java
- 22. Лучший способ сделать хэш объекта в Ruby?
- 23. Лучший способ передать функцию в качестве параметра
- 24. Есть ли значительно лучший способ написать эту функцию утилиты xhrRetry?
- 25. Лучший способ сделать снимок объекта в файл
- 26. Лучший способ сделать перегруженные функции в C#?
- 27. лучший способ отделить общие методы
- 28. Лучший способ сделать систему «hashtag»
- 29. Лучший способ сделать чат-приложение?
- 30. Лучший способ сделать двойной вкладыш
Eh, что угодно, это не имело большого значения. Если частный конструктор, он не может быть подклассифицирован в любом случае. –
, если он не является окончательным, но имеет частный ctor, он все равно может быть подклассифицирован внутренним статическим классом. Имея это как окончательный, так и частный ctor, облегчает чтение читателю цели, поэтому я бы сделал это. – flakes
несколько дубликат: http://stackoverflow.com/questions/309553/should-helper-utility-classes-be-abstract и http://stackoverflow.com/questions/12538487/utility-class-what-is- правильный подход и http://stackoverflow.com/questions/25223553/how-can-i-create-an-utility-class – alexbt