【Java:不能在switch语句中使用泛型枚举】教程文章相关的互联网学习教程文章

java – 使用volatile来使枚举线程安全【代码】

我有一个从网上下载一些文件的runnable,它看起来如下:class Downloader implements Runnable {volatile Status status;public void run() {// ...while (status.isInProgress()) { ... }} }状态如下:public enum Status {PAUSED {public int someData() { return 0; }},INPROGRESS {public int someData() { return 1; }}public abstract int someData();private String msg; public String getSomeMsg() {return msg;}public vo...

java 枚举【代码】

未经同意就转载了,如有问题,请留言,会第一时间删除 原文链接:https://www.cnblogs.com/hyl8218/p/5088287.html enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性,存放在 java.lang 包中。 下面是我在使用 enum 过程中的一些经验和总结,主要包括如下内容: 1. 原始的接口定义常量 public interface IConstants {String MON = "Mon";String TUE = "Tue";String WED = "Wed";String THU = "Thu";String FRI = "Fri";Str...

JAVA小练习129——自定义一个性别类, 限制着别人任意创建该类的对象(枚举)【代码】

enum Gender{MAN("男"),WOMAN("女");String value; private Gender(String value){this.value = value;} }class Person{String name;private Gender sex;public Gender getSex() {return sex;}public void setSex(Gender sex) {this.sex = sex;}@Overridepublic String toString() {return "姓名:"+ this.name+" 性别:"+ this.sex.value;} }public class Demo129 {public static void main(String[] args) {Person p = new Perso...

java – 使用枚举中定义的静态字段作为构造函数中的参数【代码】

我有一个枚举,并希望在构造函数中使用静态值作为参数.public enum Enum {e1(0),e2(1),e3(SPECIAL_VALUE);static int SPECIAL_VALUE = -1;int value;private Enum(int value){this.value = value;} }在此示例中,SPECIAL_VALUE在初始化之前被访问,因此这显然不起作用.我想知道是否有一个共同的解决方案.或者我不应该这样做的原因. 注意:某处可能存在重复,但我能找到的所有内容都与在构造函数体中使用静态字段有关,而不是作为参数,我...

Java允许在枚举类型中声明抽象方法,但它是最终类而不是抽象类【代码】

在java中,我们创建的所有枚举类型都是继承Enum类的最终类.那么为什么java允许我们在枚举类型中声明一个抽象方法呢?因为枚举类型是最终类,并且java不允许我们在最终类中声明抽象方法. 谢谢.解决方法:你不应该扩展它们,但你肯定可以多次实现一个抽象方法:public enum Animal {COW {public String talk() {return "moo";}},FROG {public String talk() {return "croak";}};public abstract String talk(); }

如何获得在Java中实现特定接口的正确枚举?【代码】

我有以下界面:public interface Moon {// Enums can not extend any class in Java,// thus I am implementing an interfacedouble getMass();double getDiameter(); }这是由我的枚举实现的(我省略了构造函数和方法实现)public enum Saturn implements Moon {ATLAS(30.2, 6.6),PAN(28.2, 4.95);private double Diameter;private double Mass;// constructor and methods implementation }和其他行星类似的枚举:public enum Mars ...

java – EnumSet for 1.5之前的假枚举?【代码】

最近我做了很多这些enum Thing {/* etc etc */static final Set<Thing> allThings = EnumSet.allOf(Thing.class);}我想在1.5之前的Java中有类似的东西,即我想要类似的东西:final class Thing {private Thing(); // control instances within classstatic final Thing instance0 = new Thing();static final Thing instance1 = new Thing();static final Set allThings = // ????? }我该怎么做?解决方法:那个怎么样:final class ...

Java初学——枚举和实体类【代码】【图】

一、枚举1.枚举的含义枚举是由一组固定的常量组成的类型,枚举的类型关键字是enum 2.枚举的使用定义枚举类package enumtdome;public enum Gender {one,two,three,four,five,six,seven }    枚举的运用package enumtdome;import java.util.Scanner;public class test {Gender ger;public static void main(String[] args) {test test=new test();test.name(Gender.one);}public void name(Gender day) {switch (day) {case one...

Java枚举

用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 Java代码? public enum Color { RED, GREEN, BLANK, YELLOW } 用法二:switch JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。 Java代码? enum Signal { GREEN, YELLOW, RED } public class Tr...

java – 有可能用Spock模拟枚举吗?【代码】

我有一个switch语句来处理java enum foo,并使用spock编写一些groovy单元测试.我已经添加了一个测试,它验证当前是否处理了每种类型的foo而没有抛出异常.现在我想测试一个无法识别的foo类型会导致抛出异常. 要做到这一点,我将不得不嘲笑枚举,并已经看到这里概述的解决方案:Mocking Java enum to add a value to test fail case 我也知道可以用powermock做,但我真的很喜欢spock,因为我发现它非常轻巧,所以我们正在寻找使用spock的解决...

Java中的枚举和泛型【代码】

我需要从枚举和泛型中提供某种设施.枚举cannot have type parameters(它只是被语法禁止)并且实际上就像公共静态最终成员一样,我倾向于写这样的东西:public class GenericEnumLikeClass<T>{public static GenericEnumLikeClass<MyType> TYPE_INSTANCE;public static GenericEnumLikeClass<AnotherType> ANOTHER_INSTANCE;//other things }问题是我以前从未做过类似的事情,严格来说,不确定Java公约的正确性.它是否会被视为奇怪的东西...

Java枚举强制字段的唯一性【代码】

我有一个枚举,简化形式看起来像这样.public enum Codes{Code1("someCode1", "someState"),Code2("someCode2", "someState"),......private final String m_code;private final String m_state; }我的目标是强制执行当其他任何人编辑此枚举以添加新值时,例如Code100,Code100的m_code不应与任何先前的Code1-Code99的m_code相同.我能想到的唯一方法是为这个枚举编写一个单元测试来进行检查.这个问题有更好的解决方案吗? 理想情...

java – 枚举性能中的Singleton【代码】

我想知道枚举中的单身人士和它的表现. 当我们有多线程环境时,我们必须在创建实例时同步时刻. 简单地说,我们可以使用synchronized mod,用于创建实例的名为getInstance()的函数有些想法:public synchronized Singleton getInstance(){if(instance == null){instance = new Singleton();}return instance; }这是懒惰的实现它对我有好处.但是同步方法很慢.我们可以使用双锁来加快速度. 枚举怎么样?当我们将单例实现为枚举时,将首次使...

使用Java流将集合转换为映射:如何将预定义的枚举作为值【代码】

我有一个Long的集合,因为我需要从这个集合创建一个映射,它具有集合的元素作为键,以及1个预定义的枚举作为值(所有键具有相同的值). 我试图通过Streams实现这一点,如下所示:private Map<Long, Marker> mapMarker(Collection<Long> ids, Marker marker) {return ids.stream().collect(Collectors.toMap(Function.identity(), marker)); }编译器因此错误而失败:no instance(s) of type variable(s) T, U exist so that Marker confor...

java – Emacs枚举缩进【代码】

我遇到了Emacs缩进Java枚举的问题.虽然它缩进第一个成员OK,但是它希望给所有其余的静态枚举成员一个额外的缩进级别.它看起来像这样:class MyClass {public enum MyEnum {ONE(1), //goodTWO(2), // not good!THREE(3),FOUR(4);private final int value;} }当我在打开枚举的行上运行Cc Cs时,它给了我((inclass 1)(topmost-intro 1)),这似乎不太正确 – 看起来它应该是给大括号列表打开.当我在第一个枚举成员上运行它时,它给了我((de...