首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何更好的定义枚举

但如果你能在具体的开发中,更优雅的定义枚举的话会让你的代码看起来清新脱俗,本文将介绍枚举的各种用法,特别后面的通过构造函数传参以后,让你在开发中,遇到枚举与int value之间切换时变得更优雅。...用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。...如果打算自定义自己的方法,那么必须在enum实例序列的最后添加一个分号。...关于这个两个集合的使用就不在这里赘述,可以参考JDK文档 枚举和常量定义的区别 一、 通常定义常量方法 我们通常利用public final static方法定义的代码如下,分别用1表示红灯,3表示绿灯...枚举类型的简单定义方法如下,我们似乎没办法定义每个枚举类型的值。

1.1K90
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Scala专题系列(五):类与对象

    value += 1 } // 方法默认是public的 def age() = value } 在Scala中,类并不声明为public,类都具有公有可见性 使用类需要做的就是构造对象并按照通常的方式来调用方法...private[this] 修饰的变量只能在当前类中使用 } 只带getter属性 如果需要一个只读属性,有getter但没有setter,属性的值在对象构建完成之后就不在改变,则可以使用val字段...自动生成一个getter和一个setter 2:val foo:scala自动合成一个getter 3:自己定义foo和foo_=方法 4:自定义foo方法 Bean属性 前面提到Sacla定义的字段提供了...,如上面的例子中,name和age成为person类的字段 2:主构造器会执行类定义中的所有语句 构造参数也可以是普通的方法参数,不带val或var,这样的参数如何处理取决于它们在类中如何被定义。...,可以直接 val account = Account(1000.0) 枚举 在Scalal中没有枚举类型,不过标准库中提供了一个Enumeration的一个助手类,可以用于产出枚举 比如: 定义一个扩展

    57230

    万物皆对象,Python中的类的属性是如何定义的??

    我是你们的老朋友Java学术趴。 11.2.4 属性 属性就是类里面定义的变量。定义在类里面、方法外面的属性称为类属性。定义在方法里面使用 self引用的属性称之为实例属性。...__init__(self): self.food = '猫粮' ​ def eat(self): """ 定义在类的实例方法中的属性称为实例属性...(self): """ 定义在类的实例方法中的属性称为实例属性 """ # 类中的实例方法只能访问到类中的实例属性 print...print('小猫在玩耍') pass ​ pass ​ ​ # 定义动物的实例对象 cat = Animal() # 在类的实例对象中添加额外的属性 cat.color...存在这个类中的所有属性 定义在类的实例方法中的属性称为实例属性 """ # 类中的实例方法只能访问到类中的实例属性 print('小猫的年龄是

    2.2K10

    在Entity Framework中使用存储过程(二):具有继承关系实体的存储过程如何定义?

    如果两种模型存在差异,在进行数据更新操作的时候就会出错。本篇文章主要介绍当概念模型中具有继承关系的两个实体映射到数据库关联的两个表,如何使用存储过程。...T_EMP用于存储员工信息,主键为代表员工ID号的EMP_ID。为了简单起见,我仅仅定义两个额外的字段:FIRST_NAME和LAST_NAME。...另一个表T_EMP用于存储销售人员的信息,它具有一样的主键EMP_ID,额外的两个字段代表负责的区域(Territory)和提成的比率(Commission Rate)。...由于具有继承关系的两个实体不能有重复的属性,属于你需要删除掉T_SALES的EMP_ID属性。最后你需要修正实体和属性的名称使之更具可读性。最后的.edmx模型如下图所示。 ?...在Entity Framework中使用存储过程(一):实现存储过程的自动映射 在Entity Framework中使用存储过程(二):具有继承关系实体的存储过程如何定义?

    1.5K100

    3小时Java入门

    七,字符串String Java 中的字符串和Scala中的字符串来源于同一个包,java.lang.String,两者具有完全相同的方法。 以下为字符串一些常用操作。 ? ?...十三,枚举类enum 如果有一些相关的常量,如星期,月份,颜色,可以将其它们定义为枚举类型。 枚举类型常用的方法有name和ordinal。 name():查看枚举常量值的名字。...十七,类的定义 Java中用关键字class定义普通类, 用enum定义枚举类,用abstract class定义抽象类,用interface定义接口。 我们先看普通类的定义和实例化。...Java 中的 interface具有和 Scala中的 trait相似的功能。 一个class只能继承自一个父类,但可以继承自多个接口。...RUNTIME类型的注解如何使用,完全由程序自己决定。 二十七,Scala和Java对比 Java发明于1995年,Scala发明于2003年。

    2.7K30

    关于自定义控件设计时如何把属性写入aspx中的研究(上)

    如何通过继承GridView来修改在设计时绑定数据源时自动生成的ASP.Net代码?...就是实体类的属性名,是E文的,我现在想在GridView的CreateColumns方法中进行拦截这个生成过程,硬是把E文改为对应的中文。...结果,在设计时和运行时都可以看到是中文的,但是aspx中就不是中文的。 我就想问问,怎么样,才能让它在aspx中体现中文,GridView自身是怎么样把自动生成的列写入到aspx中的。...但是,我有纳闷了,A从来不调用CreateColumns方法,它哪里来的列信息? 最后只有一种可能,那就是:那些属性,是被复制过去的,或者在GridViewDesigner中创建的。...我的研究,就到这里了,下次有空再把剩下的发上来吧。

    2.7K80

    关于自定义控件设计时如何把属性写入aspx中的研究(下)

    虽然这一篇已经是“下”了,但是我并没有研究清楚“自定义控件设计时如何把属性写入到aspx中”这个问题。 不过,我选择了另外一条路,做了点手脚,让控件把属性写入到aspx中去了。...其实,即使有人肯定的告诉我,在上篇中提到的ControlSerializer类的SerializeControl方法就是用于把控件属性写入到aspx中去的,我也实在没办法利用它,它的位置太“深”了。...我是通过重写GridView的Columns属性来实现的。...重载该属性,并输出日志,果然,有很少的几次调用。不过,已经够了。 我的做法就是,在这个属性的get方法里面,强制改变各列的属性,再返回。...,之前的几个判断,是为了防止列属性被频繁改变。

    2.2K50

    Java 8的函数式编程学习

    ,对给定的输入(不论程序中的其它状态如何)总是返回相同的输出,并且不会产生其它影响,或者改变任何程序状态,这时候函数式编程是最有用的。...2)这个特定的程序如何使用语言提供的函数式特性?它是否避免了非函数式特性,例如可变状态?...Java的一些历史 Java是一种固执己见的语言,它具有很好的可读性,初级程序员很容易上手,具有长期稳定性和可支持性。...我们能用它来定义类似这样的Scala方法: def showRefine(x : {def bar : String}) = { print(x.bar) } 然后,如果我们定义一个合适的Scala对象...Java 5类型系统 Java 5的发布为类型系统带来了三个主要新特性,枚举、注解和泛型。 枚举类型(Enum)在某些方面与类相似,但是它的属性只能是指定数量的实例,每个实例都不同并且在类描述中指定。

    99770

    Scala 学习笔记之Object

    单例对象 Scala没有静态方法或静态字段,可以使用 object 来达到这个目的,对象定义了某个类的单个实例: object Account{ private var lastNumber =...在Scala中可以用对象来实现: 作为存放工具函数或常量的地方 高效的共享单个不可变实例 需要用单个实例来协调某个服务时(参考单例模式) 2....伴生对象 在Java中,通常会用到既有实例方法又有静态方法的类,在Scala中,可以通过类和类同名的 伴生对象 来达到同样的目的: class Account{ val id = Account.newUniqueNumber...枚举 不同于Java,Scala中没有枚举类型,需要我们通过标准库类 Enumeration 来实现: object BusinessType extends Enumeration{ var FLIGHT..., HOTEL, TRAIN, COACH = Value } 继承 Enumeration 类,实现一个 BusinessType 对象,并以 Value 方法调用初始化枚举中的所有可选值.在这里我们定义了

    48920

    客快物流大数据项目(六十二):主题及指标开发

    目录 主题及指标开发 一、主题开发业务流程 二、离线模块初始化 1、创建包结构 2、​​​​​​​创建时间处理工具 3、​​​​​​​定义主题宽表及指标结果表的表名 4、​​​​​​​物流字典码表数据类型定义枚举类...每个主题都需要拉宽操作将拉宽后的数据存储到kudu表中,同时指标计算的数据最终也需要落地到kudu表,因此提前将各个主题相关表名定义出来 实现步骤: 在公共模块的scala目录下的common程序包下创建...为了后续使用方便且易于维护,根据物流字典表的数据类型定义成枚举工具类,物流字典表的数据如下: 来自:tbl_codes表 name type 注册渠道 1 揽件状态 2 派件状态 3 快递员状态 4...目录下的common程序包下创建CodeTypeMapping对象 根据物流字典表数据类型定义属性 实现过程: 在公共模块的scala目录下的common程序包下创建CodeTypeMapping对象...根据物流字典表数据类型定义属性 package cn.it.logistics.common /** * 定义物流字典编码类型映射工具类 */ class CodeTypeMapping {

    79531

    从源码到实践:构建个性化Spring Boot参数校验器

    @Constraint用于标注自定义约束注解。它有一个属性: validatedBy:指定一个或多个实现了ConstraintValidator接口的验证器类,用于定义对应的验证逻辑。...实操 实际工作中我们可能会遇到这样的情况,添加用户时可能要校验性别字段传值是否在性别数组或者枚举中,以此来校验性别传递的数据是否正确,下面我们就以这个例子自定义一个参数校验器。...message属性表示校验失败时的提示语。...payload是一种用于将额外信息传递到验证约束的机制。实际上,payload本身并不具有具体的功能,它只是一个用于携带额外信息的容器。这里不过多介绍payload,感兴趣的可以自己试试。...接下来再测试一下,可以看到结果已经是我们配置的国际化信息的数据了。 到此就结束了。 总结 本文介绍了如何在Springboot中自定义参数校验,用好参数校验能帮助我们节省很多重复的校验逻辑。

    37110

    【C#】妈妈再也不用担心自定义控件如何给特殊类型的属性添加默认值了,附自定义GroupBox一枚

    ------------------更新:201411190903------------------ 经过思考和实践,发现套路中的第1条是不必要的,就是完全可以不用定义一个名为Default+属性名的字段或属性...写自定义控件时往往会有一个需求,就是给属性指定一个默认值(就是可以在VS中右键该属性→重置),如果该属性的类型是内置值类型还好,直接使用DefaultValue特性就好,例如: [DefaultValue...、字段、属性、方法返回值啥的。...所以为了能独立设置GroupBox的标题的颜色和字体,增加了TitleColor和TitleFont这俩自定义属性,也正是想把TitleFont的默认值设为SystemFonts.DefaultFont...方法的逻辑是,如果为属性赋的值就是默认值,那么就告诉VS不要在InitializeComponent中显式为该属性赋值了。

    1.5K20

    Spring认证中国教育管理中心-Spring Data R2DBC框架教程六

    从编程模型的角度来看,需要考虑以下几点: 应该保留哪个属性(默认为所有声明的属性)?您可以通过使用 注释这些属性来排除属性@Transient。 如何表示数据存储中的属性?...您可以NamingStrategy通过将自定义注册为 bean来配置它。该NamingStrategy控件类和属性的名称是如何地转化为表和列的名称。...16.4.1.默认类型映射 下表解释了实体的属性类型如何影响映射: 列的本机数据类型取决于 R2DBC 驱动程序类型映射。驱动程序可以提供额外的简单类型,例如几何类型。...如果 Java 类型具有名称与输入行的给定字段匹配的属性,则其属性信息用于选择将输入字段值传递到的适当构造函数参数。...此外,您需要在驱动程序级别配置枚举类型,以便驱动程序知道如何表示枚举类型。

    2.1K20

    Scala里面如何使用枚举

    枚举通常用来定义已知数量的常量,比如月份,星期,季节等等,用过java的人都知道定义枚举的关键字是enum,在scala里面和java有所不同,来看一个完整的例子定义: 上面的这个例子基本涵盖了枚举的所有常用方法...,定义枚举我们继承的是Enumeration抽象类,然后通过内部对象Value来赋值每一个枚举的值,此外里面还定义了几个工具方法,比如判断是否存在某个枚举,是否是工作日,以及打印所有的枚举值,在使用的时候可以直接通过...此外还可以用枚举值做模式匹配: 上面基本就是Scala里面最常见的枚举方法了,当然这种常见的枚举有一些缺点,比如上面的这个模式匹配,如果我仅仅写3个枚举值,它编译时候仍然能通过,但在运行的时候就会报错,...最后这种方式不能枚举一个对象,只能简单的类型,如果想枚举的值,本身就是一个Bean,那么则需要另外的方式,这里就不展开了,有兴趣的朋友可以参考下面的链接: http://pedrorijo.com/blog.../scala-enums/

    1.1K50

    遇到这些 TS 问题你会头晕么?

    其实在 TypeScript 枚举中的枚举成员也可以引用其他已定义的枚举成员,具体示例如下: enum Style { None = 0, Bold = 1, Italic = 2, Underline...的值是通过对已定义的枚举成员进行位或运算得出。...为什么枚举会支持这种特性呢?这是因为枚举类型是 Number 类型的子类型,所以可以使用数值运算符来计算枚举的值。...此外,还定义了 eatEgg 和 drinkMilk 两个函数来实现吃鸡蛋和喝牛奶的功能。...子类型和赋值兼容性要求源类型相对于其目标类型没有多余的属性。此检查的目的是检测对象字面量中是否包含多余或拼写错误的属性。 如果满足以下条件,则认为源类型 S 相对于目标类型 T 含有多余的属性。

    5.3K20
    领券