【JAVA自学笔记,枚举】教程文章相关的互联网学习教程文章

JAVA自学笔记,枚举【代码】【图】

JDK1.5中新增了枚举,枚举是一种数据类型,它是一系列具有名称的常量的集合。比如在数学中所学的集合:A{1,2,3},当使用这个集合时,只能使用集合中的1,2,3这三个元素,不是这三个元素的值就无法使用。Java中的枚举是同样的道理,比如在程序中定义了一个性别枚举,里面只有两个值:男,女。那么在使用该枚举时,只能使用男和女这两个值,其他的任何值都是无法使用的。 使用枚举类型设置常量 以往设置常量,通常将常量放置在接...

聊一聊Java的枚举enum【代码】

一. 什么是枚举 枚举是一种数据类型,具有集合的一些特点,可以存放多个元素,但存储对象有限且固定,枚举也有比较常见的使用场景,如我们需要表达性别(男、女),颜色(红、黄、蓝),星期(星期一、星期二...星期日),四季(春、夏、秋、冬),地理位置(东、西、南、北),方向(前、后、左、右)等,这些场景都非常适合枚举。 二. 定义枚举 java中使用enum来定义枚举,和class,interface具有同样的等级,(注意是enum,而不是...

Java基础之枚举【代码】

一、Java中使用enum关键字定义枚举类 1 package test;2 /**3 * 泛型的使用4 * @author Administrator5 *6 */7 public class TestType {8 9 public static void main(String[] args) { 10 Em[] values = Em.values(); 11 //遍历枚举中的下标与之对应的值 12 for (Em em : values) { 13 System.out.println("枚举下标:"+em.ordinal()+"\t\t"+"枚举下标对应的名称:"+em.name()); 14 ...

java – 以不同的方式将枚举映射到spring表单【代码】

我有枚举集public enum MyEnum {A("AND"), //I("INTER"); }我有弹簧形式:在我的jsp页面中选择填充AND和INTER我想要的,但是在提交表单时抛出异常,不能将String AND映射到枚举类型Status. 我的控制器:model.addAttribute("list",MyEnum.values);**But it works when I modify my enum and add one more value like ,OR(“R”) , now If I select OR from UI , it gets saved properly in thedatabase.But it won’t work for A or ...

如何使用枚举或任何其他方式在java中构建类别的层次结构树?【代码】

假设我们有一组类别:categories = {A,B}.让我们更多地假设A由子类别组成:{A1,A2,A3}和B由子类别组成:{B1,B2}.此外,还有更多的子类别如下:对于A1:{A1a,A1b},对于A2 :{A2a,A2b},对于A3:{A3a,A3b,A3c},对于B1:{B1a,B1b,B1c},对于B2:{B2a,B2b}.如何在java中构建层次结构? 由于每个集合的基数是固定的并且事先已知,我最初的方法是使用枚举类型而不是构建具有继承的类,但我对任何建议持开放态度.我不知道如何处理这个问题. 提前...

java – 如何找出EnumMap中使用的枚举?【代码】

我有一个带有内部枚举和EnumMap的测试类,如下所示.如何找出EnumMap中使用的枚举?enum MyEnum { ENUM1, ENUM2 } EnumMap<MyEnum, String> emap = new EnumMap<>( MyEnum.class ); public void discover() {Class<?> eclass = ???;System.out.println( eclass ); }应该打印MyEnum.class解决方法:如果映射不为空,则可以检索一个键并检查其类.否则唯一的方法是通过反射访问EnumMap的keyType私有字段(该字段不通过公共API公开). 在第一...

java – 使用Mockito模拟枚举?【代码】

我需要模拟以下枚举:public enum PersonStatus {WORKING,HOLIDAY,SICK }这是因为它在我正在测试的以下类中使用: 被测班:public interface PersonRepository extends CrudRepository<Person, Integer> {List<Person> findByStatus(PersonStatus personStatus); }这是我目前的测试尝试: 目前的测试:public class PersonRepositoryTest {private final Logger LOGGER = LoggerFactory.getLogger(PersonRepositoryTest.clas...

java – 如何将Object转换为枚举以在switch语句中使用它【代码】

使用Java 8,我有一个Map,我需要转换为另一个Map替换键名,有时替换值.例如,当它们变成枚举时,我需要将这些枚举转换为其他常量(字符串,有时是整数).我不想比较Strings,即theEnum.name(),因为可能有重复,但更喜欢将Object转换为枚举并打开它.但是,我找不到将Object转换为可切换枚举的方法. Enum.valueOf不会返回可以切换的内容(请参阅下面的示例).private void put(String key, Object value) {if (value != null && value.getClass()...

java – 在Spring Boot控制器中反序列化枚举忽略大小写【代码】

参见英文答案 > Jackson databind enum case insensitive 10个我有Spring Boot端点,它有枚举作为查询参数:@GetMapping("/example") public List<Example> getByEnum(@RequestParam(name = "exampleEnum", required = false) ExampleEnum exampleEnum) {// code }和枚举类:public enum ExampleEnum {FIRST,SECOND, }如果我将大写枚举值传递给endpoit,它反序列化很好,但它会抛出小写错误:java...

c#enums:他们可以使用java枚举等成员和函数吗?

在java中,可以给枚举一个构造函数以及成员变量和函数. 我想知道在c#enums中是否有可能出现这样的事情.如果是这样,怎么样? 非常感谢!解决方法:执行与此类似的操作的唯一方法是使用扩展方法,这可以使其看起来好像枚举具有成员方法. 除此之外,您可以为枚举创建一个伴随结构类型,该类型具有枚举值的属性,然后添加其他属性和方法来支持该值.

Java枚举知识点【代码】【图】

近几天从单例模式及阿里开发手册中遇到枚举,之前没怎么关注过。 便学习一下,此次看了多方资料,并写Demo实现,记录下知识点,方便之后巩固。 枚举的两个优点: 1. 保证了类型安全:调用者无法随意传一个 int或者String 等值; 2. 代码可读性非常高; 举个例子: 1 package com.wzf.study03.test03;2 3 enum LangEnum {4 JAVA, JS, PYTHON5 }6 7 public class EnumDemo1 {8 public static void main(String[] args) {9...

java – 保持枚举在arraylist中排序?

假设我有一个名为行星的枚举,其中包含VENUS,EARTH和MARS.我将有很多数组列表,每个类型最多只能包含一个.我希望按照VENUS,EARTH和MARS的顺序始终对每个数组列表进行排序. 我需要使用比较器吗?是否有一种方法可以在插入后自动对它们进行排序,还是需要在每次插入后调用sort?我是否需要在每种类型中保留一个int值来区分它们的顺序? 如果您有任何建议,请提供其他建议,谢谢.解决方法:最常见的解决方案是使用TreeSet,它在插入时按顺序保...

Java枚举类型 – 自打印枚举【代码】

我正在尝试编写一个java函数,它将枚举类型作为参数(基于控制台的菜单系统的一部分).然后,此函数将打印枚举中的所有字符串表示. 枚举看起来像这样:protected enum main{Option1,Option2,Option3,...OptionN, }我的显示功能看起来像这样public void displayMenu(Enum menu) {// Get values from enum typeEnum menuOps = menu.values();// Iterate over values and printfor(int i =0 ; i < menuOps.length; i++)System.out.println...

java – 将枚举声明为泛型参数时获取枚举的values()【代码】

下面显示的代码确实有效,因为方法values()是静态的.我的问题是如果B不是通用的,我怎样才能实现下面的代码.class A<B extends Enum<B>> {public A() {for (B b : b.values()) {}} }我可以想到两个解决方案: >将枚举值传递给A的构造函数> make B实现一个接口,定义获取枚举值的方法. 对我来说两者都显得凌乱.谁有更好的解决方案?解决方法:尝试使用getEnumConstants()

如何在Java中从枚举中返回一个对象?【代码】

我有许多实现相同接口的类.所有这些类的对象必须在主类中实例化.我试图以一种优雅的方式完成这件事(我想通过枚举).示例代码: – public interface Intr { //some methods }public class C1 implements Intr { // some implementations }public class C2 implements Intr { // some implementations }...public class Ck implements Intr { // some implementations }public class MainClass {enum ModulesEnum { //Some code here...