枚举类型

Java 枚举7常见种用法

て烟熏妆下的殇ゞ 提交于 2020-02-29 12:12:04
DK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。 枚举就是把一类东西归类,然后定义每个枚举值的类型都是该枚举类,同时又可以通过类的特征为这一类东西做些扩展,使得这类东西更好用。 反之如果不用枚举类进行统一管理,一样可以干活。 用法一:常量 在JDK1.5 之前,我们定义常量都是: publicstaticfianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 Java代码 public enum Color { RED, GREEN, BLANK, YELLOW } 用法二:switch JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。 Java代码 enum Signal { GREEN, YELLOW, RED } public class TrafficLight { Signal color = Signal.RED; public void change() { switch (color) { case RED: color = Signal.GREEN; break; case YELLOW: color = Signal.RED; break; case GREEN: color = Signal

java枚举的使用方法

谁都会走 提交于 2020-02-29 12:07:34
参考:http://www.iteye.com/topic/1116193 DK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。 用法一:常量 在JDK1.5 之前,我们定义常量都是: publicstaticfianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 Java代码 public enum Color { RED, GREEN, BLANK, YELLOW } 用法二:switch JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。 Java代码 enum Signal { GREEN, YELLOW, RED } public class TrafficLight { Signal color = Signal.RED; public void change() { switch (color) { case RED: color = Signal.GREEN; break; case YELLOW: color = Signal.RED; break; case GREEN: color = Signal.YELLOW; break; } } } 用法三:向枚举中添加新方法 如果打算自定义自己的方法

java(二十二)枚举

二次信任 提交于 2020-02-29 11:22:04
枚举类:实例有限而且固定的类。 在早期,使用一些静态常量来表示枚举,但存在很多问题:类型不安全、没有命名空间,打印输出的值没有具体意义。 jdk 1.5 以后添加了枚举类。用关键字enum来表示,跟class、interface的地位是相同的。 枚举类是一种特殊的类: 继承了 java.lang.Enum 而不是Object类,所以不能显式继承其他父类。 java.lang.Enum 类实现了两个接口: java.lang.Serializable 和 java.lang.Comparable。 使用enum定义、非抽象的枚举类默认会用final修饰,因此不能派生子类。 枚举类的构造器只能用private来修饰。 枚举类的所有实例必须显式在第一行声明,否则永远不能构建实例。 如果想要使用枚举类的某个实例,可以用 枚举类名.实例名 的形式调用。 枚举类提供了一个values方法,可以很方便的用来遍历枚举类: for( 枚举类名 s : 枚举类名.values() ){ } 注意: jdk 1.5 以后,switch控制语句可以使用枚举类,case语句判断时直接用枚举类的实例名,不用加枚举类的限定。 java.lang.Enum类提供了几个方法: int compareTo() :比较顺序。 String name() :返回该枚举类实例的名称。 String toString()

【Winform】 Enum逆向解析

ぃ、小莉子 提交于 2020-02-29 02:55:11
将字符串转换成Enum类型 Enum.Parse:将一个或多个枚举常数的名称或数字值的字符串表示转换成等效的枚举对象。 名称 说明 Parse(Type, String) 将一个或多个枚举常数的名称或数字值的字符串表示转换成等效的枚举对象。 Parse(Type, String, Boolean) 将一个或多个枚举常数的名称或数字值的字符串表示转换成等效的枚举对象。 一个参数指定该操作是否不区分大小写。 参数 enumType 类型: System .Type 枚举类型。 value 类型: System .String 包含要转换的值或名称的字符串。 返回值 类型: System .Object enumType 类型的对象,其值由 value 表示。 ChartImageFormat cif = (ChartImageFormat) Enum.Parse( typeof (ChartImageFormat), tsmi.ToolTipText, true ); 参考: MSDN 来源: oschina 链接: https://my.oschina.net/u/135461/blog/707688

Java笔记---枚举类和注解

匆匆过客 提交于 2020-02-28 14:20:17
Java笔记---枚举类和注解 一、枚举类 自定义枚举类 方式一:JDK5.0之前自定义枚举类 class Seasons { //1. 声明Seasons对象的属性 private final String SeasonName; private final String SeasonDescrp; //2. 私有化类的构造器, 并给对象赋值初始化 private Seasons(String SeasonName, String SeasonDescrp) { this.SeasonDescrp = SeasonDescrp; this.SeasonName = SeasonName; } //3. 提供当前枚举类的多个对象 public static final "枚举类的名字" public static final Seasons SPRING = new Seasons("SPRING", "春天"); public static final Seasons SUMMER = new Seasons("SUMMER", "夏天"); public static final Seasons AUTUMN = new Seasons("AUTUMN", "秋天"); public static final Seasons WINTER = new Seasons(

值的枚举字符串名称

只谈情不闲聊 提交于 2020-02-28 10:16:54
我有一个像这样的枚举构造: public enum EnumDisplayStatus { None = 1, Visible = 2, Hidden = 3, MarkedForDeletion = 4 } 在我的数据库中,枚举由值引用。 我的问题是,如何将枚举的数字表示形式转回字符串名称。 例如,给定 2 ,结果应该是 Visible 。 #1楼 如果您需要获取字符串 "Visible" 而不获取 EnumDisplayStatus 实例,则可以执行以下操作: int dbValue = GetDBValue(); string stringValue = Enum.GetName(typeof(EnumDisplayStatus), dbValue); #2楼 您可以使用简单的强制转换将 int 转换回枚举成员,然后调用 ToString() : int value = GetValueFromDb(); var enumDisplayStatus = (EnumDisplayStatus)value; string stringValue = enumDisplayStatus.ToString(); #3楼 你可以施展它 int dbValue = 2; EnumDisplayStatus enumValue = (EnumDisplayStatus)dbValue;

Swfit5.0基础之枚举

穿精又带淫゛_ 提交于 2020-02-27 18:49:13
枚举基本使用 //枚举的简单定义和简单应用 //第一种定义方式 enum Direction{ case north case south case east case west } //第二种定义方式 enum Direction1 { case north,south,east,west } //枚举的简单使用 var dir = Direction.west dir = Direction.north dir = .east print(dir) switch dir { case .east: print(Direction.east) default: break } //枚举关联值的使用 enum Score { case points(Int) case grade(Character) case Level(String) case LevelStr(String,String) } var score = Score.points(100) score = .grade("A") score = .Level("dddd") score = .LevelStr("zhangsan", "lisi") switch score { case let .points(i): print(i) case let .grade(i): print(i) case let

架构师内功心法,经典高频面试的单例模式详解

回眸只為那壹抹淺笑 提交于 2020-02-27 08:15:51
一、单例模式应用场景 单例模式(Single Pattern)是指 确保一个类在任何情况下绝对只是一个实例,并提供一个全局的访问点。 单例模式在现实生活中的应用也很广泛。例如国家总统、公司CEO、部门经理等。在java标准中,ServletContext、ServletContextConfig等;在Spring框架中ApplicationCotext;数据库对应的连接池也都是单例形势的。 二、单例模式分类 2.1 饿汉式单例 饿汉式单例是在类加载的时候就立即初始化了,并且创建了单例对象。绝对的线程安全,在线程还没出现以前就实例化了,不可能存在访问安全问题。 优点:没有加任何的锁,执行效率高,在用户体验上,比懒汉式更好。 缺点:类加载的时候就初始化了,不管用与不用都占空间,浪费了内存,有可能占着茅坑不拉屎。 Spring中的IOC容器ApplicationContext 本身就是典型的饿汉式单例。案例代码: public class HungrySingleton { /** * 先静态后动态 * 先属性后方法 * 先上后下 */ private static final HungrySingleton hungrySingleton = new HungrySingleton(); private HungrySingleton() { } public static

针对某些编译器不能使用 bool 类型的解决方法

我们两清 提交于 2020-02-26 22:18:32
最近发现某些编译器(例如一个朋友用的vs2010)在使用 bool 这个类型写函数的时候编译器提示不识别这个类型,查了一下发现,一些编译器认为bool这个类型不安全,自己想了一个可以代替bool的写法,给小白们看看 用枚举的方法定义一个名为BOOL(大写bool便于识别)的枚举变量,利用枚举变量中第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1这一特性,配合bool类型的返回值false(0)和true(1),由此达到自定义实现bool的目的。 来源: 51CTO 作者: wx5cb188ffabeef 链接: https://blog.51cto.com/14289397/2443876

写出优质Java代码的4个技巧

僤鯓⒐⒋嵵緔 提交于 2020-02-26 02:06:02
写出优质Java代码的4个技巧 我们平时的编程任务不外乎就是将相同的技术套件应用到不同的项目中去,对于大多数情况来说,这些技术都是可以满足目标的。然而,有的项目可能需要用到一些特别的技术,因此工程师们得深入研究,去寻找那些最简单但最有效的方法。在 前一篇文章 中,我们讨论了必要时可以使用的四种特殊技术,这些特殊技术可以创建更好的Java软件;而本文我们将介绍一些有助于解决常见问题的通用设计策略和目标实现技术。 1 .只做有目的性的优化 大型软件系统肯定非常关注性能问题。虽然我们希望能够写出最高效的代码,但很多时候,如果想对代码进行优化,我们却无从下手。例如,下面的这段代码会影响到性能吗? public void processIntegers(List<Integer> integers) { for (Integer value: integers) { for (int i = integers.size() - 1; i >= 0; i--) { value += integers.get(i); } } } 这就得视情况而定了。上面这段代码可以看出它的处理算法是O(n³)(使用 大O符号 ),其中n是list集合的大小。如果n只有5,那么就不会有问题,只会执行25次迭代。但如果n是10万,那可能会影响性能了。请注意,即使这样我们也不能判定肯定会有问题