当前位置: 首页 > news >正文

常州网站建设 个人用群晖的wordpress

常州网站建设 个人,用群晖的wordpress,宝安做棋牌网站建设多少钱,网站开发毕业设计报告枚举是一个非常古老的语言特性#xff0c;用来实现具名的有限集合#xff0c;在 C/C 中使用广泛。而 Java 在 Java SE5 才引入枚举。也许语言设计者觉得既然是后引入该特性#xff0c;那么一定要在这个特性上支持比其他语言更多的特性。这些特性的确让 Java 的枚举功能看起来…枚举是一个非常古老的语言特性用来实现具名的有限集合在 C/C 中使用广泛。而 Java 在 Java SE5 才引入枚举。也许语言设计者觉得既然是后引入该特性那么一定要在这个特性上支持比其他语言更多的特性。这些特性的确让 Java 的枚举功能看起来更加“成熟”同时也引入了一些复杂性需要开发者关注。枚举是一个不能继承的常规类定义一个一周七天的枚举类型public enum EnumWeekDay {Mon, Tue, Wed, Thu, Fri, Sat, Sun;}编译成 class 文件后反编译查看╰─➤ javap EnumWeekDayCompiled from EnumWeekDay.javapublic final class EnumWeekDay extends java.lang.Enum {public static final EnumWeekDay Mon;public static final EnumWeekDay Tue;public static final EnumWeekDay Wed;public static final EnumWeekDay Thu;public static final EnumWeekDay Fri;public static final EnumWeekDay Sat;public static final EnumWeekDay Sun;public static EnumWeekDay[] values();public static EnumWeekDay valueOf(java.lang.String);static {};}从反编译结果可知枚举类型的关键字 enum 其实只是一个语法糖编译器最终把它转化为一个final类因此枚举是不可继承的。枚举的每一个取值被编译器传化为了一个个 static final 属性。本质上这就是一个普通类因此你可以在枚举是添加各种方法甚至是main方法。神奇的 values() 方法从上面我们可以看出枚举类型被添加了一个静态的 values() 方法但是 java.lang.Enum 并没有该方法。其实这个方法是编译器添加的。通过这个方法可以获取到该枚举类型的所有取值。这个方法在需要遍历枚举取值进行判断筛选的场景非常有用可参考下例的 getByZhName 方法。在枚举中保存其他信息在 C 中枚举可以简单的理解为具名的整型子集。Java 扩展了这个属性使得可以在枚举中保存其他信息。定义一个水果枚举类并包含中文信息public enum EnumFruit {APPLE(苹果),BANANA(香蕉),ORANGE(橘子);private String zhName;EnumFruit(String zhName) {System.out.println(enum init: zhName);this.zhName zhName;}/*** Getter method for property zhName.** return property value of zhName*/public String getZhName() {return zhName;}public EnumFruit getByZhName(String zhName) {for (EnumFruit fruit : values()) {if (fruit.getZhName().equals(zhName)) {return fruit;}}return null;}}使用这种方式定义枚举的方式需要注意该枚举必须含有一个构造函数且该构造函数必须是私有的。因为枚举就是常规类而枚举对象就是具体的枚举实例因此枚举有多少个取值该构造函数就会被调用多少次public class EnumUser {public static void main(String[] args) {EnumFruit fruit EnumFruit.APPLE;System.out.println(fruit);}}enum init:苹果enum init:香蕉enum init:橘子APPLE使用 EnumSet 和 EnumMap 提供性能如果要在把枚举使用在 Set、Map 等集合场景请使用 EnumSet 和 EnumMap。 EnumSet 使用了 bit vector 来标记元素EnumMap 内部将 Map 实现简化为了数组因此可以获得更好的性能。小结Java 的枚举语言特性作为一个后来者的确带来了更加“成熟”和“丰富”的实现。但是这些丰富的特性是否一定要在日常的项目中使用我个人是不推荐的。就我个人理解枚举最大的优点是类型和有限集合的约束从而增强代码的一致性。因此我提倡在项目代码中用 C 的枚举风格来使用 Java 枚举。此外枚举并不是编程语言必须支持的特性比如近段时间如日中天的 Golang 是不支持枚举的。既然是一个可有可无的语言特性那就 use is as simple as possible 吧。扩展阅读
http://www.pierceye.com/news/893444/

相关文章:

  • 做网站细节电商网站建设 平台
  • 网站建设方案书1500全国中小企业网站
  • 阳江市建设局网站合肥最新消息今天
  • 做关于什么样的网站好货代去什么网站开发客户
  • 中国工程建设造价管理协会网站漳州seo顾问
  • 什么网站可以做2.5D场景网站过程建设
  • google移动网站建站十大原则室内装修工人培训班
  • 自己做网站要会什么软件下载搭建网站有什么用
  • 天津做网站找谁网站如何做首面关键词
  • 微信小程序做链接网站做catalog的免费网站
  • 呼市网站制作招聘建设网站 托管 费用
  • dede自适应网站模板济南著名网站建设
  • 旅游网站排名榜手机开发网站工具
  • 饰品公司网站建设策划书百度seo优化收费标准
  • wordpress企业建站5网站建设
  • 网站运营解决方案皮具网站设计
  • 地宝网 网站建设上海网站制作网站开发
  • 有哪些出名的工业设计网站做废钢铁生意在哪个网站了解
  • wordpress 根目录函数深圳债务优化公司
  • 基于android的app的设计与开发seo链接优化
  • 怎么用优盘做网站登录密钥百度收录网站名字
  • 网站制作的一般步骤网站域名备案需要多长时间
  • 运城市住房与城乡建设局网站郑州百姓网招聘
  • 网站调用网页怎么做重庆手机网站方案设计
  • 购物 网站建设的市场分析泰兴网站建设吧
  • 企业网站代运营微信网页登录wordpress
  • 专业网站制作流程深圳市 网站建设450
  • 怎么做加盟网站海南网站搭建外包
  • 没有网站可以做落地页网站体验方案
  • 重庆便宜做网站的网站内容注意事项