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

java – 是否可以在快速枚举中进行转换?【代码】

假设你开始// Set<String> Object arrayOfSomething[] = someObject.toArray();现在,我知道arrayOfSomething实际上是一个arrayOfStrings,我想迭代一遍 目前,我for (Object o : arrayOfSomething) {String strValue = ((String) o).trim();...以下是可能的:for (String (String) strValue : arrayOfSomething) {...是否可以将对象转换为快速枚举的一部分?解决方法:还有一个方法Collection.toArray(T [])返回一个T类型的数组而不是...

使用values()创建枚举常量的最终Java类数组【代码】

在Java枚举类中,我想创建一个包含类的values()的最终静态数组.当我沿着以下行执行此操作时,结果数组为null.public enum Name {E1( stuff ), E2( stuff );private static final Name[] values = Name.values();private Name( stuff ) { more stuff; } }我也试过通过调用一个显式的类setter方法来做到这一点,但是这给了一个java.lang.ExceptionInInitializerError异常. 我理解这个问题是由一些浅的依赖引起的,因为前面代码中的东西使...

java – 枚举,类,反射和通用铸造【代码】

考虑一下我有一个接口com.mycompany.SomeInterface,一个枚举com.mycompany.SomeEnum实现了SomeInterface.我希望在运行时使用Reflection API获取此类的所有枚举常量 – 作为SomeInterface的实例. 目前,我的代码(在类EnumConstantGetter中)是这样的:Class<?> clazz = EnumConstantGetter.class.getClassLoader().loadClass("com.mycompany.SomeEnum");if (!(SomeInterface.class.isAssignableFrom(clazz)) {throw new Exception("th...

java – 修复代码:查找对枚举的序数方法的所有调用

我有一些写得不好的代码,显然违反了Effective Java 31. 我试图通过添加一个带有getter的实例字段来修复它,但是我很难在enum上找到对.ordinal()方法的所有引用.在.ordinal()上执行Eclipse调用层次结构,可以在任何枚举上获得对该方法的所有引用.在这个代码库中有数百个这种不良做法的例子,我无法解决所有这些问题.我只是想为这个枚举修复它. 有没有办法在Eclipse或其他工具中找到对MyEnum.ordinal()的所有引用?解决方法:我首先使用C...

可以从Java中该类的枚举中获取类方法吗?【代码】

假设我有一个包含Java中枚举的类.是否可以从包含枚举的类中访问方法?举个例子:public class Foo {private string getClassVal() { return "42"; } public string getOtherClassVal() { return "TheAnswer"; } public enum Things {ONE("One"), TWO("Two"), THREE("Three"); private String _val; private Things(String val) { _val = val; } // This method is the problempublic String getSomeVal() {return _val + this.getC...

java – 在枚举上调用方法【代码】

public enum AgeGroup {CHILD{public int get(){return 10;} }, TEEN, YOUNG, MID, OLD;}我有一个枚举AgeGroup,你看到CHILD有一个方法get().有人可以告诉我为什么我们不能从CHILD调用get()这背后的设计方法是什么,或者为什么这样设计?解决方法:首先,枚举的所有实例都是相同的类型,这意味着所有实例都具有相同的方法集. 您需要在枚举类型本身上声明一个方法,以便实例具有一个方法:public enum AgeGroup {CHILD{public int get(){r...

java – 枚举 – 静态初始化顺序【代码】

参见英文答案 > Why can’t enum’s constructor access static fields? 5个在java中禁止在枚举类的构造函数中访问静态变量.为什么在枚举中不会交换静态初始化的顺序? 正确代码示例:enum Test {TEST1, TEST2;static int x; }为什么java的开发人员没有创建正确的代码:enum Test {static int x;TEST1, TEST2; }然后可以在构造函数中使用静态变量.现在禁止了. 它有什么理由还是只是他们的设计?...

通过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 XML Web服务中防止枚举【代码】

我喜欢Enum的类型安全性,它也使代码更具可读性.每当我有机会,我总是会使用Enum. 当我需要将这些代码公开为Web服务时,问题就出现了.例如,如果我有这样的枚举:public enum Language {ENGLISH(1),BAHASA_MALAYSIA(2); }它将在wsdl中公开,如下所示:<xs:simpleType name="language"> <xs:restriction base="xs:string"><xs:enumeration value="ENGLISH"/><xs:enumeration value="BAHASA_MALAYSIA"/></xs:restriction> </xs:simpleType...