枚举类型

【Spring Boot AOP记录用户操作日志】2. 自定义@Log注解

筅森魡賤 提交于 2020-01-06 13:55:21
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 自定义注解 定义一个方法级别的 @Log 注解,用于标注需要监控的方法: @Target({ ElementType.PARAMETER, ElementType.METHOD }) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface Log { /** * 模块 */ public String title() default ""; /** * 功能 */ public BusinessType businessType() default BusinessType.OTHER; /** * 操作人类别 */ public OperatorType operatorType() default OperatorType.MANAGE; /** * 是否保存请求的参数 */ public boolean isSaveRequestData() default true; } 新建功能枚举 public enum BusinessType { /** * 其它 */ OTHER, /** * 新增 */ INSERT, /** * 修改 */ UPDATE, /** * 删除 */ DELETE, /** * 授权 */ GRANT

C ++11出现了更好的两种数据类型,C++11中的空指针与强类型枚举

半城伤御伤魂 提交于 2020-01-03 03:47:49
虽说C++现在17了,但是还是讲下C++11中两个类型吧,C ++从一开始就尝试改进C的类型系统,添加类可以构建更好的类型和枚举的类,这样就不需要预处理器的某些用途(这在类型上并不安全)。C ++还为您执行更少的隐式类型转换(例如不允许从void *进行隐式赋值),让编译器为您找到更多错误。C ++ 11更进一步,即使枚举摆脱了整数#define常量的需要,我们仍然有丑陋的,输入不良的NULL指针。 C ++ 11通过添加一个具有自己类型的显式,清晰的nullptr值来清除这一点。C ++ 11还带来了新的强类型枚举。在本文中,我将介绍这些改进。 为什么我们需要强类型枚举? 好玩,有趣,专业C/C++学习交流,源码下载 群:747821062 1.那么为什么我们还需要强类型的枚举? 旧式C ++枚举基本上是整数; 它们可以与整数或其他不同类型的枚举进行比较。问题是,你通常不想这样做,因为枚举应该是一些固定的枚举值列表。 2.为什么要与其他枚举类型(或整数)进行比较? 这就像说,“请把这种指甲与这种牙刷比较。” 这没有任何意义,你可能并不是故意这样做。但旧式的C ++枚举会很高兴地告诉你,“为什么是,这个指甲不像这个牙刷”,或者更糟糕的是,它们可能比较相同,因为它们碰巧共享相同的基本整数值(“啊是的,这个指甲是电子牙刷“)。现在,使用强类型枚举,编译器会告诉您正在执行此操作

对象可枚举和不可枚举属性

依然范特西╮ 提交于 2019-12-31 10:42:18
在JavaScript中,对象的属性分为可枚举和不可枚举之分,它们是由属性的enumerable值决定的。可枚举性决定了这个属性能否被for…in查找遍历到。 一、怎么判断属性是否可枚举 js中基本包装类型的原型属性是不可枚举的,如Object, Array, Number等,如果你写出这样的代码遍历其中的属性: var num = new Number(); for(var pro in num) { console.log("num." + pro + " = " + num[pro]); } 它的输出结果会是空。这是因为Number中内置的属性是不可枚举的,所以不能被for…in访问到。 Object对象的 propertyIsEnumerable() 方法可以判断此对象是否包含某个属性,并且这个属性是否可枚举。 需要注意的是 :如果判断的属性存在于Object对象的原型内,不管它是否可枚举都会返回false。 二、枚举性的作用 属性的枚举性会影响以下三个函数的结果: for…in Object.keys() JSON.stringify() 先看一个例子,按如下方法创建zx对象: function Person() { this.name = "ZX"; } Person.prototype = { constructor: Person, job: "student",

Thinking in java Chapter19 枚举类型

落爺英雄遲暮 提交于 2019-12-30 16:45:47
1 基本enum特性 1.1 将静态导入用于enum 2 向enum中添加新方法 2.1 覆盖enum的方法 3 switch语句中的enum 4 values的神秘之处 5 实现而非继承 6 随机选取 7 使用接口组织枚举 8 使用EnumSet替代标识 9 使用EnumMap 10 常量相关的方法 10.1 11 多路分发 12 总结 enum 将一组具名的值的有限集合创建为新的类型 本章深入enum, 泛型 和 反射,及设计模式 1 基本enum特性 package enumerated; enum Shrubbery{GROUND,CRAWLING,HANGING} // 灌木 地面 爬行 悬挂 编译器生成Shrubbery类,继承自java.lang.Enum public class EnumClass { public static void main(String[] args) { for (Shrubbery s: Shrubbery.values()){// enum的values,可以遍历enum示例。返回enum实例的数组,且顺序为声明顺序。 System.out.println( s + " ordinal: " + s.ordinal());// ordinal返回int,从0开始 System.out.print(s.compareTo

Java枚举一些常用用法(enum)

て烟熏妆下的殇ゞ 提交于 2019-12-30 01:32:10
1、在没有枚举之前,使用类来定义私有属性那些不被改变的固有的值,如周一到周日,而且每次声明都是public static fianl... 2、有了枚举后便可以把相关的变量放在一起,省了每次都用public static fianl...声明。 一、枚举的常用方法 方法 说明 int compareTo (E o) 比较此枚举与指定对象的顺序 Class<E> getDeclaringClass () 返回与此枚举常量的枚举类型相对应的 Class 对象 String name () 返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零) int ordinal () 返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零) String toString () 返回枚举常量的名称,它包含在声明中 static <T extends Enum<T>> T valueOf (Class<T> enumType, String name) 返回带指定名称的指定枚举类型的枚举常量 实验 public enum Test { SUN("周日"), MON("周一"), TUE("周二"), WED("周三"), THU("周四"), FRI("周五"), SAT("周六"); private Test(String week) { } public String

Java枚举类Enum 使⽤场景

筅森魡賤 提交于 2019-12-29 22:36:21
Java枚举类Enum 使⽤场景 什么是枚举 : 在数学和计算机科学理论中,⼀个集的枚举是列出某些有穷序列集的所有成员的程序,或者是⼀种特定类型对象的计数。 java⾥⾯的枚举Enum 枚举类型是Java 5中新增特性的⼀部分,它是⼀种特殊的数据类型, 定义枚举类型时使⽤的关键字是enum,与class关键字类似,但前者是定义枚举类型,后者是定义类类型 注意: 枚举值⼀般是⼤写的字⺟,多个值之间以逗号分隔 没有枚举类型时定义常量常⻅ public class EnumTest { public static final int MONDAY = 1; public static final int TUEDAY = 2; public static final int WEDNESDAY = 3; public static final int THURSDAY = 4; public static final int FRIDAY = 5; public static final int SATURDAY = 6; public static final int SUNDAY = 7; } 使⽤枚举类型定义 enum DayEnum{ MONDAY,TUEDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY } enum SexEnum{

TTreeView完整的枚举和递归算法

我只是一个虾纸丫 提交于 2019-12-28 09:11:53
TTreeView完整的枚举和递归算法 一、TTreeView (一)、重要属性 Memo_Test.Lines.Add( ‘TTreeView重要属性:’ +', 1、可见数: '+IntToStr((LAddObject as TTreeViewItem ). VisibleCount ) //:该节点所有展开的下级总数 +', 2、Item个数: '+IntToStr((LAddObject as TTreeViewItem). Count ) //:该节点所有下级总数>=0,末级Count=0 +', 3、几级: '+IntToStr((LAddObject as TTreeViewItem). Level ) //:该节点的级数:级数>=1 +', 4、全局索引: '+IntToStr((LAddObject as TTreeViewItem). GlobalIndex ) //:该节点所有展开的下级的重新的自动索引(作用不大) ); 5、该节点的父节点: (LAddObject as TTreeViewItem). ParentItem 6、该节点被勾选IsChecked: if (LAddObject as TTreeViewItem).IsChecked=True then ; 7、该节点是否展开其下级、展开或收拢其下级: if FTreeViewItemCurrt

c#基础笔记四(Enum枚举的使用和使用场景)

我的梦境 提交于 2019-12-28 01:24:08
Enum枚举的使用和使用场景 枚举是一组命名整型常量。 枚举类型是使用 enum 关键字声明的。 C# 枚举是值类型。 枚举不能被继承或传递继承。 枚举的声明 enum MyEnum { A , B , C , D , E } 枚举列表中的每个符号都会对应一个整数数值,在没有指定的情况下符号对应的整数就是该符号在枚举列表中的下标,如果有一个被指定数值,那么后面的符号就会以这个符号被指定的数值开始递增; static void Main ( string [ ] args ) { Console . WriteLine ( ( ( int ) MyEnum . A ) . ToString ( ) ) ; Console . WriteLine ( ( ( int ) MyEnum . B ) . ToString ( ) ) ; Console . WriteLine ( ( ( int ) MyEnum . C ) . ToString ( ) ) ; Console . WriteLine ( ( ( int ) MyEnum . D ) . ToString ( ) ) ; Console . WriteLine ( ( ( int ) MyEnum . E ) . ToString ( ) ) ; Console . ReadKey ( ) ; } enum MyEnum

枚举类型的用法

情到浓时终转凉″ 提交于 2019-12-27 16:45:06
构造枚举类型: public class ApiUser implements User{ private String status; public enum Status{ HANG("hang"), LOCK("lock"), NORMAL("normal"), CANCEL("cancel"); String value; Status(String value){ this.value=value; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } } } 注意可以填写备注信息: /** * 用户状态 */ public enum Status{ /** * 挂起 */ HANG("hang"), /** * 锁定 */ LOCK("lock"), /** * 正常 */ NORMAL("normal"), /** * 注销 */ CANCEL("cancel"); String value; Status(String value){ this.value=value; } public String getValue() { return value; } public void setValue(String

Scala里面如何使用枚举

試著忘記壹切 提交于 2019-12-27 10:57:19
枚举通常用来定义已知数量的常量,比如月份,星期,季节等等,用过java的人都知道定义枚举的关键字是enum,在scala里面和java有所不同,来看一个完整的例子定义: object EnumTest { /*** * 定义一个星期的枚举 */ object WeekDay extends Enumeration{ type WeekDay = Value //声明枚举对外暴露的变量类型 val Mon = Value("1") val Tue = Value("2") val Wed = Value("3") val Thu = Value("4") val Fri = Value("5") val Sat = Value("6") val Sun = Value("7") def checkExists(day:String) = this.values.exists(_.toString==day) //检测是否存在此枚举值 def isWorkingDay(day:WeekDay) = ! ( day==Sat || day == Sun) //判断是否是工作日 def showAll = this.values.foreach(println) // 打印所有的枚举值 } def main(args: Array[String]): Unit = { println