3 года назад
enum в Java: очевидное - невероятное
Всем привет! Хочу рассказать про ряд неочевидных особенностей enum в Java. Поехали! 1) enum - это полноценный класс, у него могут быть поля, методы, обычные и статические 2) любой enum неявно (!) расширяет абстрактный класс Enum, поэтому наследовать enum от кого-то другого нельзя. Например, один enum от другого. При этом добавить final для enum нельзя, т.к. он уже фактически final) 3) зато enum может реализовывать интерфейсы, как и любой другой класс в Java 4) самое интересное - каждое значение enum является наследником самого enum. Т.е. можно объявить метод show в enum Direction и переопределить его Direction...
5 лет назад
Микрооптимизации в Java. Enum - хороший, красивый и медленный
Перечисления  —  важная часть каждого приложения, которое представляет собой чуть больше, чем “Hello World”. Они повсюду. И, на самом деле, перечисления очень полезны: они ограничивают ввод, позволяют сравнивать значения по ссылке, обеспечивают проверку во время компиляции и облегчают чтение кода...
11 месяцев назад
Illegal argument exception java ошибка
A Java IllegalArgumentException is a common runtime exception that occurs when a method receives an argument that is Valid in terms of its type, but Invalid in terms of its value or content. In simpler terms, the method understood the Kind of data you gave it, but it didn’t like the Specific data you provided. Here’s a breakdown of what it means, why it happens, and how to deal with it: What it means: IllegalArgumentException is a subclass of RuntimeException: This means it’s an unchecked exception, so you don’t Have to explicitly catch it in your code (though you often should for robustness)...
252 читали · 2 года назад
Java 82. Может ли Enum расширить (extends) класс?
В Java Enum не может расширять (extends) классы, так как Enum уже является конечной реализацией класса. В Java каждый Enum наследуется от класса java.lang.Enum, который уже содержит реализацию методов, свойств и функциональности, необходимых для работы перечислений. Также если мы попытаемся объявить перечисление, которое наследует другой класс, то компилятор выдаст ошибку. Например: public class MyClass { // some code } public enum MyEnum extends MyClass { // ОШИБКА КОМПИЛЯЦИИ!...