JAVA 枚举 技术教程文章

通过char Java获取枚举【代码】

我在Java中有这个简单的枚举public enum FileType {FILE('-'), DIRECTORY('d'), SYMLINK('l'), DEVICE('b');private char type;FileType(char type) {this.type = type;}}我想创建一个FileType type = FileType.valueOf(‘d’);,它是否有可能?解决方法:将类型重命名为name以避免混淆,但您明白了.public enum FileType {FILE('-'), DIRECTORY('d'), SYMLINK('l'), DEVICE('b');private char name;FileType(char name) {this.name ...

Java中的枚举和多态,扑克牌示例【代码】

我尝试设计一个关于扑克牌的项目.我有一张卡片class Card {Rank rank; Suit suit; }西装是一个枚举.enum Suit { .... }Rank应该有一个方法getValue().我希望有一个以上的排名,即. BlackJackRank和PokerRank.所以我创建了一个接口Rank,方法是getValue,两个枚举BlackJackRank和PokerRank实现了这个接口.enum BlackJackRank implements Rank {ACE(1),DEUCE(2),THREE(3) ....private final int value;private BackJackRank(int value)...

java – 使用与类关联的条目创建枚举【代码】

假设我有几个特定的??类,它们都扩展了一个抽象类,如下所示:public abstract AbstractClass {// abstract stuff here }public FirstSpecificClass extends AbstractClass {// specific stuff here }public SecondSpecificClass extends AbstractClass {// specific stuff here }我需要在其他地方创建一个枚举,其中每个条目与一个特定的类连接(关联?);为此,我将特定的类作为构造函数参数传递并将其作为私有字段存储在枚举中(我还为...

java – 在添加到Set时按枚举排序【代码】

我需要创建基于以下内容的优先级集/数组:public interface IListener {public Priority getPriority();public enum Priority{HIGHEST,HIGH,NORMAL,LOW,LOWEST;} }IListeners存储在:HashMap<Class<? extends IListener>, Set<IListener>> listeners = new HashMap<>();我期待制作方法,它将始终在优先级组之后的第一位添加IListener.例:给定Set包含一些具有此顺序的IListeners. {最高,最高,最高,最高,最低,低,低,最低} 添加优先级...

Java基础笔记(四)--枚举类和Java常用类【代码】【图】

枚举类 枚举类型本质是一种继承 java.lang.Enum 类. 特点:枚举类是引用类型, 具有面向对象特性, 可以添加成员变量和方法.枚举类父类是 java.lang.Enum, 不需要显示声明.枚举类可以实现接口, 与类接口实现类似.枚举类不能被继承, 不存在子类.声明:[public] enum 枚举名{枚举常量列表 }示例:enum WeekDays{MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY; }枚举在 switch 语句中的应用WeekDays day = WeekDays.FRIDAY; System.out.p...

枚举Java字段

我有一个包含~90个字段的Java类.我希望能够对每个字段(例如生成一个XML元素)执行操作,而无需编写相同的5行代码,并进行90次轻微替换.在Objective C中,我认为您可以通过类似于访问Dictionary元素(ObjectForKey)的方式获取实例变量. Java中有类似的东西,我可以得到一个字段数组,然后对它们各自做一些事情吗?解决方法:是的,它被称为Reflection API. 特别是,MyClass.class.getDeclaredFields()将返回此类声明的完整字段列表(see API fo...

java获取枚举中最长的字符串【代码】

我想在Java Enum中找到最长的String.做这个的最好方式是什么?我没有和Enums一起工作,所以任何建议都是受欢迎的.这些是我的枚举public enum DOMAIN_LANGUAGES {ENG, SWE;public static List<DOMAIN_LANGUAGES> getDomainLanguages(){List<DOMAIN_LANGUAGES> languages = new ArrayList<DOMAIN_LANGUAGES>();languages.add(ENG);languages.add(SWE);return languages;} }public enum DOMAIN_STATE {LIVE,PENDING_RENEWAL,PENDING_TR...

如何避免java中重复的枚举值?【代码】

我有枚举对应编码.我需要检查枚举没有重复的编码值.public enum EncodingsEnum {ISO8859_1("ISO-8859-1",0), ISO8859_2("ISO-8859-2",1),ISO8859_3("ISO-8859-3",2), ISO8859_4("ISO-8859-4",3),ISO8859_5("ISO-8859-5",4), ISO8859_6("ISO-8859-6",5),ISO8859_7("ISO-8859-7",6), ISO8859_8("ISO-8859-8",7),ISO8859_9("ISO-8859-9",8), ISO8859_11("ISO-8859-11",9),ISO8859_13("ISO-8859-13",10),ISO8859_15("ISO-8859-15",11),...

java – 如何从静态上下文中引用枚举变量?【代码】

if(array[3][3].getCall() == false && array[3][3].getUser() == Car.user.NONE ){array[3][3] = new Car('s', Car.user.USER, false);aCounter++;System.out.println("everything is fine");}这段代码告诉我:错误:无法从静态上下文引用非静态变量用户.public class Car {public enum User { USER, COMP, NA };private char object;public User user;private boolean call;public Car(char object, User user, boolean call){th...

java – 枚举:将字符串转换为枚举【代码】

public enum Gender{m("male"), f("female");private final String value;private Gender(String option){value = option;} }我是否应该知道如何将字符串“男性”转换为任何枚举?是的,该值与枚举不同.这不行Gender.valueOf("male"); 我想提供一个 1)用for循环解析 要么 2)静态初始化Map … 我觉得第二种方式更好,因为当我初始化地图时,如果存在相同的String,我可以抛出运行时异常. 有哪些优点和缺点,还是有其他更好的解决方案?解...

Java 枚举【代码】【图】

知识点概念 enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性。 在Java中,被 enum 关键字修饰的类型就是枚举类型。形式如下: enum Color { RED, GREEN, BLUE } 如果枚举不添加任何方法,枚举值默认为从0开始的有序数值。以 Color 枚举类型举例,它的枚举常量依次为 RED:0,GREEN:1,BLUE:2。 枚举的好处:可以将常量组织起来,统一进行管理。 枚举的典型应用场景:错误码、状态机等。 枚举类型的本质 尽管 enum 看起来...

关于Java中的集合,枚举和迭代器的困惑【代码】

我的教科书几乎没有谈到Java中的枚举,而我所看过的视频并没有解释太多.所以从我的理解来看,枚举就像一个完全不同的阶级你可以在哪里存储常量.有人可以向我展示常量,也许告诉我更好的例子吗?就像我在看到这些例子后了解常量一样例如颜色,方向,以及之前的视频中的人物,而在枚举中在学年期间我的项目的一个版本,它是命令词.但我不是100%了解概念或如何使用. >另外,当你可以制作一个集合时,Enumeration的重点是什么?像例如,我看到的...

java – 是否可以使用枚举通过注释映射Spring组件?【代码】

我正在使用Spring 4,我有一个枚举声明…public static enum MY_ENUMS {A(1, "enum1"),B(2, "enum2");private final int key;private final String name;MY_ENUMS(int key, String name) {this.key = key;this.name = name;}public String getName() {return this.name;}public int getIndex() {return this.key;} }然后,从我的组件我试图做…// @Named is the equivalent of @Component for this use case // Making name public a...

java – 如何反转枚举?【代码】

我下面有一个Enum课程public class PTalkCommand { public enum Code {CLR((byte) 0),ACK((byte) 170),SER((byte) 0),NAK((byte) 0),TIMEOUT((byte) 255),DIP((byte) 173),REQUEST_CHECKSUM((byte) 162),REQUEST_STATUS((byte) 181),REQUEST_FLASH((byte) 166),REQUEST_CONFIG_READ((byte) 249),REQUEST_STATUS_SCREEN((byte) 208),REQUEST_MULTIPULSE_CONFIG((byte) 0),REQUEST_SERIAL_NUMBER((byte) 62),REQUEST_BILL_NAMES((byt...

java – 为什么为每个枚举类型创建不同的类文件,如果它们具有常量特定的方法?【代码】

我有一个枚举enum OperationsType {ADD("+"), SUB("-"), DIV("/"), MUL("*");private String opcodes;private OperationsType(String opcodes) {this.opcodes = opcodes;}public String toString() {return this.opcodes;} }这里所有枚举类型都没有任何常量的特定方法,因此javac只为枚举创建一个类文件OperationsType.class但如果我在所有枚举类型的相同代码中添加常量Specific方法,则javac将创建5个类文件.Operations.class Opera...

java – 创建一个泛型类的枚举集【代码】

当我没有通用枚举的运行时类型时,如何创建空EnumSet?示例代码:public class Utility<T extends Enum<T>> {private T[] enumConstants;public Utility(Class<T> e) {enumConstants = e.getEnumConstants();}private EnumSet<T> emptyEnumSet() {// ?} }这是我目前的解决方法,我认为它有点笨拙:private EnumSet<T> emptyEnumSet() {T first = enumConstants[0];EnumSet<T> result = EnumSet.of(first);result.remove(first);retur...

java – 如何根据提供给构造函数的参数找到枚举值?【代码】

我有一个像这样的枚举类:public enum Position {A1(0,0),A2(1,0),//etcpublic final int dy, dx;private Position(int dy, int dx) {this.dy = dy;this.dx = dx;} }现在我想要一个方法:public static Position getPosition(int dx,int dy)我可以使用给定的dx和dy返回Position.A1或Position.A2而不使用大量的if结构吗?解决方法:也许最简单的方法(实际上相对较快)就是简单地循环遍历枚举:public static Position getPosition(int...

java – 使用实现接口的枚举的EnumSet【代码】

我有一个界面public interface TerminalSymbol {// methods ... }一个枚举// common usage enum that I need public enum Common implements TerminalSymbol {EPSILON;@Override// methods ... }我想做的事情如下:enum Term implements TerminalSymbol {A, B, C, ...@Override// methods ... }EnumSet<? extends TerminalSymbol> terminalSymbols = EnumSet.allOf(Term.class); terminalSymbol.add(Common.EPSILON); // this line...

Java枚举类enum

点击查看,Java枚举类的简单使用1 点击查看,Java枚举类的简单使用2

夯实Java基础(十六)——枚举类的使用【代码】

文章转载自:https://www.cnblogs.com/happyPawpaw/archive/2013/04/09/3009553.html 用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。public enum Color { RED, GREEN, BLANK, YELLOW } 用法二:switch JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。enum Sig...