【Java-枚举(Enum)】教程文章相关的互联网学习教程文章

Java中的枚举

package com.EnumTest;/*** @ClassName WeekEnum* @Description 枚举类* @Author Administrator* @Date 2019/5/30 18:21* @Version 1.0**/ public enum WeekEnum {SUNDAY("星期日"), MONDAY("星期一"), TUESDAY("星期二"), WEDNESDAY("星期三"),THURSDAY("星期四"), FRIDAY("星期五"), SATURDAY("星期六");private String date;/*** 定义一个带参数的构造器,枚举类的构造器只能使用 private 修饰* @param date*/private WeekEnum(...

java – 当字符串包含破折号时启用枚举【代码】

我想使用枚举作为切换字符串的方式,但是java抱怨我的字符串包含“ – ”.如下面的代码所示,IC19-01和IC19-02包含“ – ”.public class CMain {public enum Model {IC19-01, IC19-02}public static void main(String[] args){String st = "IC19-01"; switch (Model.valueOf(st)) {case IC19-01: System.out.println("Case IC19-01");break;}} }我能为此做些什么?解决方法:这对Java来说是不可能的,因为每个项必须是有效的标识符(并...

java – Jersey 2枚举作为方法参数抛出异常【代码】

我目前正在将jersey 1.x项目迁移到2.4.1,并在使用枚举作为参数(PathParam,QueryParam等)时出错.基本上这个枚举应该是基于球衣对方法参数的第三个要求Have a static method named valueOf or fromString that accepts a singleString argument (see, for example, Integer.valueOf(String) and java.util.UUID.fromString(String));由于这个项目使用xsd作为契约来生成java类,我有:<xs:simpleType name="status"><xs:restriction ba...

java – 更改gson中的默认枚举序列化和反序列化【代码】

我正在以一种略微“不同”的方式使用Gson,我想知道以下是否可行…… 我想更改枚举的默认序列化/反序列化格式,以便它使用完全限定的类名,但在所述枚举上保持对@SerializedName注释的支持.基本上,鉴于以下枚举…package com.example; public class MyClass {public enum MyEnum {OPTION_ONE, OPTION_TWO, @SerializedName("someSpecialName")OPTION_THREE} }我想以下是真实的……gson.toJson(MyEnum.OPTION_ONE) == "com.example.MyC...

java – 为什么在枚举类中禁止默认序列化【代码】

参见英文答案 > Is custom enum Serializable too? 3个我一直在搜索web以查找与java中的枚举类相关的一些查询的答案. 我的查询是为什么在枚举类中阻止了默认的反序列化.我可以看到enum类实现了Serializable接口,但它也有2个方法如下 – private void readObject(ObjectInputStream in) throws IOException,ClassNotFoundException {throw new InvalidObjectException("can't deserialize enum"...

Java8在接口的默认方法中使用枚举值【代码】

我正在探索java 8中引入的静态和默认方法的可能性. 我有一个接口有2个默认方法构建命令,我通过ssh在服务器上运行远程执行一些简单的任务.移动鼠标需要2个参数:鼠标的x和y位置.public interface Robot {default String moveMouse(int x, int y) {return constructCmd("java -jar move_mouse.jar " + x + " " + y);}default String clickLeft() {return constructCmd("java -jar click_left.jar");}static String constructCmd(Str...

在枚举Java中使用数组【代码】

我的Java任务的一部分要求我创建一个枚举,它代表四种不同类型的掩模(形状),覆盖游戏板的方块.面具的测量值为33,缺少33块的一些正方形(这些不会隐藏游戏板上的方块).1 0 1 //you can think of the 0's as missing squares, and the 1's as the mask 1 1 1 1 1 0现在我想使用像[int [] []这样的数组将上面的二进制矩阵附加到四个独特掩码中的每一个,如下所示:public enum Mask {W([[1,1,0],[1,1,1],[1,0,1]]),X([[1,0,1],[1,0,1],[...

java – 如何重新引用静态枚举成员的引用【代码】

我的代码包含以下方式对枚举的引用.Flowers { ROSE, SUNFLOWER }import com.mycompany.Flowers;class A {public void foo(...) {Flowers flower = Flowers.ROSE;} }我想上面的代码使用对Flower的静态引用,然后代码就像import static com.mycompany.Flowers.ROSE;Flowers flower = ROSE;如何重新使用我的代码(使用Eclipse)来使用枚举的静态引用而不是正常的引用机制.有没有办法告诉Eclipse修改静态引用的所有常规枚举引用?解决方法...

是否可以根据输入文件创建Java枚举?【代码】

我正在使用Java 6. 假设我有一个文件availableFruits.txtAPPLE ORANGE BANANA假设我想要一个包含availableFruits.txt中列出的值的枚举FruitType,我能够这样做吗?解决方法:您不能在执行时填充枚举类型,不能 – 至少,不能没有像BCEL这样的东西,或者通过调用Java编译器. 当然,您可以编写代码来创建Java源文件,并在构建应用程序时构建它,如果您之后不需要更改它. 否则,我只是创建一个包装类,它能够获取一组已知值并重用它们.当然,您需...

Java导入类/枚举内部内部类时导入顺序的重要性【代码】

这是我的班级:package pepelu;import pepelu.ImportTest.InnerClass.InnerEnum; import javax.annotation.Resource;public class ImportTest {@Resourcepublic static class InnerClass {public enum InnerEnum {A}}public static void main(String[] args) {System.out.println(InnerEnum.A);} }当我使用maven构建时,它会给出一个编译错误:mvn clean compile[ERROR] /Users/finup/Desktop/a/importtest/src/main/java/pepelu/Im...

Java中的枚举基类【代码】

使用它作为Enum like类的基类的最佳方法是什么.我希望能够创建不同的具体类型,而无需重新编写getter方法.public enum Tool extends Item {Pickaxe("Pickaxe", 101),Saw("Saw", 201); }Tool.getNames()将返回Tool类中所有Item名称的列表.public enum Item {Default("Name", 0);private final int id;private final String name;Item(String name, int id){this.id = id;this.name = name;}public int getId(){return this.id;}publi...

java – 将一些布尔属性映射为枚举在Hibernate中设置【代码】

我有一个实体,它在数据库中有一些BIT字段: >可编辑> needs_review>活跃 这些字段使用Hibernate 3.6.9版本映射到其Java类中的布尔字段.这迫使我为每个想要获取的实体列表编写一个接口方法:List<Entity> listEditables(); List<Entity> listReviewNeeded(); List<Entity> listActives();或者编写一个通用的接口方法来实现它们的组合:List<Entity> listEntities(boolean editables, boolean reviewNeeded, boolean actives);第二个...

java – Drools:如何在规则的lhs中使用枚举?【代码】

我在写一个与lhs中的枚举值匹配的规则时遇到了困难. 例如,如果我有以下枚举:public enum EStatus {OK,NOT_OK }我想用这样的东西:rule "my rule" dialect "java"when status : EStatus() // --> this works, but I want to be more specific// status : EStatus(this == EStatus.OK) // --> doesn't work. How can I make it work?then// ... end这在Drools中甚至可能吗?我使用的是5.1.1版.解决方法...

java – 从唯一的实例值中创建枚举工厂方法【代码】

我创建了一个Enum来定义某些动作.针对外部API编程我被迫使用Integer来表达此操作.这就是为什么我在我的Enum中添加了一个整数实例字段.这应该与Joshua Bloch的Effective Java一致,而不是依赖于ordinal()或使用values()[index]的Enum常量的顺序.public enum Action {START(0),QUIT(1);public final int code;Protocol(int code) {this.code = code;} }我从API得到一个整数值,现在我想用它创建一个Enum值,我怎样才能以最通用的方式实现...

Java单例模式探究 饿汉式、懒汉式、双重检查锁、静态内部类单例、枚举单例【代码】

如何正确地写出单例模式 单例模式算是设计模式中最容易理解,也是最容易手写代码的模式了吧。但是其中的坑却不少,所以也常作为面试题来考。本文主要对几种单例写法的整理,并分析其优缺点。很多都是一些老生常谈的问题,但如果你不知道如何创建一个线程安全的单例,不知道什么是双检锁,那这篇文章可能会帮助到你。 懒汉式,线程不安全 当被问到要实现一个单例模式时,很多人的第一反应是写出如下的代码,包括教科书上也是这样教我...