Перечисление Java является синтаксическим сахаром для представления перечислений способом OO. Они - абстрактные классы, расширяющие Класс Enum в Java, и каждое перечисление значений похоже на статическую заключительную общедоступную реализацию экземпляра класса Enum. Посмотрите на сгенерированные классы, и для перечислимого "Нечто" с 10 значениями, Вы будете видеть "1 Foo$" через сгенерированные классы "за 10 Foo$".
я не знаю C#, хотя, я могу только размышлять, что перечисление на том языке больше похоже на традиционное перечисление на языках стиля C. Я вижу от быстрого поиска Google, что они могут содержать несколько значений однако, таким образом, они, вероятно, реализованы подобным образом, но с намного большим количеством ограничений, чем, что позволяет компилятор Java.
JavaBean следует определенным соглашениям. Именование получателя / установщика, наличие общедоступного конструктора по умолчанию, возможность сериализации и т. Д. Подробнее см. Соглашения JavaBeans .
POJO (простой-старый-Java-объект) не определен строго. Это объект Java, который не требует реализации определенного интерфейса или производного от определенного базового класса, или использования определенных аннотаций, чтобы быть совместимым с данной структурой, и может быть любым произвольным (часто относительно простым) Объект Java.