枚举类型

mybatis精讲(三)--标签及TypeHandler使用

ⅰ亾dé卋堺 提交于 2019-12-05 16:29:41
目录 话引 XML配置标签 概览 properties 子标签property resource 程序注入 settings 别名 TypeHandler 自定义TypeHandler EnumTypeHandler EnumOrdinalTypeHandler SexTypeHandler typeHandler注意点 # 加入战队 微信公众号 话引 前两张我们分别介绍了Mybatis环境搭建及其组件的生命周期。这些都是我们Mybatis入门必备技能。有了前两篇的铺垫我们今天就来深入下Mybatis, 也为了填下之前埋下的坑。 XML配置标签 概览 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!--引入外部配置文件--> <properties resource=""/> <!--设置--> <settings/> <!--定义别名--> <typeAliases> <package name=""/> </typeAliases> <!--类型处理器--> <typeHandlers

枚举

故事扮演 提交于 2019-12-05 14:54:19
某些类型的对象是有限的几个,这样的例子举不胜举: 星期:Monday(星期一)......Sunday(星期天) 性别:Man(男)、Woman(女) 月份:January(1月)......December(12月) 季节:Spring(春节)......Winter(冬天) 支付方式:Cash(现金)、WeChatPay(微信)、Alipay(支付宝)、BankCard(银行卡)、CreditCard(信用卡) 员工工作状态:Busy(忙)、Free(闲)、Vocation(休假) 订单状态:Nonpayment(未付款)、Paid(已付款)、Fulfilled(已配货)、Delivered(已发货)、Checked(已确认收货)、Return(退货)、Exchange(换货)、Cancel(取消) 枚举类型本质上也是一种类,只不过是这个类的对象是固定的几个,而不能随意让用户创建。 在JDK1.5之前,需要程序员自己通过特殊的方式来定义枚举类型。 在JDK1.5之后,Java支持enum关键字来快速的定义枚举类型。 JDK1.5之前 构造器加private私有化 本类内部创建一组常量对象,并添加public static修饰符,对外暴露这些常量对象 1 public class TestEnum { 2 public static void main(String[] args

深入理解枚举类

谁都会走 提交于 2019-12-05 09:36:11
深入理解枚举 ​ 最近刚学习完JVM相关知识,想到枚举既然这么异类,那就从字节码角度来分析一下它。有关枚举的讲解,很多博客已经很详细了,这里我们就从字节码的角度重新来认识一下它。 ​ 枚举类是一种特殊的类,它可以有自己的成员变量,方法,可以实现一个或多个接口,也可也定义自己的构造器。 1. 枚举类的继承结构: 2. 枚举类和普通类的区别: (1)枚举类可以实现一个或多个接口,使用enum定义的枚举类默认继承了java.lang.Enum类,而不是继承Object类,因此枚举不能够显示继承其他父类(单继承局限性,但是可以实现接口)。其中“java.lang.Enum”实现了“Comparable”和“Serializable”接口。 (2)使用enum定义,非抽象的枚举类默认会使用final修饰,因此枚举类不能够派生子类。 (3)枚举类的构造器只能够使用private访问控制符,如果省略了构造器的访问控制符,则默认使用private修饰;如果强制指定访问控制符,则只能指定private修饰符。 (4)枚举类的所有实例必须要在枚举类的第一行显示列出,否则这个枚举类永远都能产生实例。列出这些实时,系统会自动添加public static final修饰符,无需程序员显示添加。 (5)枚举类默认提供了一个values方法,返回枚举实例数组,该方法可以很方便的遍历所有的枚举值。

Go 自定义类型来实现枚举类型限制

别等时光非礼了梦想. 提交于 2019-12-05 07:19:31
今天使用iota 发现一个问题。定义别名类型的时候 调用函数报错。废话不多说,我们看一段示例(关于iota的用法这里就不介绍了,手册介绍滴比较详细): package main import "fmt" type Aliasint int // 定义int 的别名 为Aliasint const ( AA Aliasint = iota //初始化 0 BB // 1 CC // 2 ) func test(m Aliasint) { fmt.Println(m) } func main() { m := AA test(m) x := 1 test(x) // cannot use x (type int) as type Color in argument to test } 报错的意思是:不能在参数中使用x(type int)作为类型Aliasint来测试 分析:因为int 被别名化了。使用额外同类型变量不被支持,为啥?因为 x := 1这里 x 被隐试定义为了int, 而int不再是所谓的"int",而是 Aliasint. 怎么理解? 如果我们这样,那就没问题,继续看: package main import "fmt" //type Aliasint int // 定义int 的别名 为Aliasint const ( AA int = iota //初始化 0 BB

获取枚举类型描述

耗尽温柔 提交于 2019-12-05 06:22:05
代码修改前: switch (months) { case "1": nums = "1"; break; case "2": nums = "2"; break; case "3": nums = "3"; break; case "4": nums = "4"; break; case "5": nums = "5"; break; case "6": nums = "6"; break; case "7": nums = "7"; break; case "8": nums = "8"; break; case "9": nums = "9"; break; case "10": nums = "A"; break; case "11": nums = "B"; break; case "12": nums = "C"; break; } 代码修改后: class Program { static void Main(string[] args) { Console.WriteLine(GetMonth("1")); Console.WriteLine(GetMonth("10")); Console.ReadKey(); } public static string GetMonth(string month) { var enumValue = (month)Enum

java enum的用法详解

a 夏天 提交于 2019-12-05 02:02:18
java enum的用法详解 Java Enum原理 public enum Size{ SMALL, MEDIUM, LARGE, EXTRA_LARGE }; 实际上,这个声明定义的类型是一个类,它刚好有四个实例,在此尽量不要构造新对象。 因此,在比较两个枚举类型的值时,永远不需要调用equals方法,而直接使用"=="就可以了。(equals()方法也是直接使用==, 两者是一样的效果) Java Enum类型的语法结构尽管和java类的语法不一样,应该说差别比较大。但是经过编译器编译之后产生的是一个class文件。该class文件经过反编译可以看到实际上是生成了一个类,该类继承了java.lang.Enum<E>。 例如: public enum WeekDay { Mon("Monday"), Tue("Tuesday"), Wed("Wednesday"), Thu("Thursday"), Fri( "Friday"), Sat("Saturday"), Sun("Sunday"); private final String day; private WeekDay(String day) { this.day = day; } public static void printDay(int i){ switch(i){ case 1: System.out

java enum用法

馋奶兔 提交于 2019-12-04 20:49:30
博客转载: https://www.cnblogs.com/liaojie970/p/6474733.html java Enum原理 public enum Size{ SMALL, MEDIUM, LARGE, EXTRA_LARGE }; 实际上,这个声明定义的类型是一个类,它刚好有四个实例,在此尽量不要构造新对象。 因此,在比较两个枚举类型的值时,永远不需要调用equals方法,而直接使用"=="就可以了。(equals()方法也是直接使用==, 两者是一样的效果) Java Enum类型的语法结构尽管和java类的语法不一样,应该说差别比较大。但是经过编译器编译之后产生的是一个class文件。该class文件经过反编译可以看到实际上是生成了一个类,该类继承了java.lang.Enum<E>。 例如: public enum WeekDay { Mon("Monday"), Tue("Tuesday"), Wed("Wednesday"), Thu("Thursday"), Fri( "Friday"), Sat("Saturday"), Sun("Sunday"); private final String day; private WeekDay(String day) { this.day = day; } public static void printDay

java 枚举

会有一股神秘感。 提交于 2019-12-04 17:38:38
枚举是一种特殊的数据,它的取值是有限的,是可以枚举出来的,比如一年有四季、一周有七天。虽然使用类也可以处理这种数据,但枚举类型更为简洁、安全和方便。 枚举的好处体现在以下几方面。 定义枚举的语法更为简洁。 枚举更为安全。一个枚举类型的变量,它的值要么为null,要么为枚举值之一,不可能为其他值,但使用整型变量,它的值就没有办法强制,值可能就是无效的。 枚举类型自带很多便利方法(如values、valueOf、toString等),易于使用。 基础使用: public class Main_5_4_1 { public static void main(String[] args) { // 使用Size Size size = Size.MEDIUM; Size size = Size.SMALL; // 枚举变量的toString方法返回其字面值,所有枚举类型也都有一个name()方法,返回值与toString()一样 System.out.println(size.toString()); // SMALL System.out.println(size.name()); // SMALL Size size = Size.SMALL; // 枚举变量可以使用equals和==进行比较,结果是一样的 System.out.println(size == Size.SMALL);

Python笔记4

主宰稳场 提交于 2019-12-04 17:37:30
JSON: JavaScript Object Notation, JavaScript 对象标记 JSON 本质:是一种轻量级的数据交换格式 1. 轻量级 是 和 XML作比较 2. 数据交换格式 :JSON 是一种数据交换格式, 它的载体是字符串(字符串是JSON的表现形式。) Ps. JSON 对象 和 JSON 字符串的区别 符合JSON格式的字符串叫做JSON字符串, i.e { "name":"John"} Ps. JSON VS XML , JSON 在互联网领域更受欢迎。 JSON优势:易于阅读、解析,网络传输效率高,是一种跨语言交换数据(XML也是跨语言的) 反序列化 json_str='{"name":"小气","age":18}' #JSON 字符串 json_array='[{"name":"小气","age":18},{"name":"小气","age":18}]'#JSON数组 里面 是双引号的话,外面必须是单引号 JSON格式的字符串键值必须是双引号 数字可以不加双引号 json字符串loads,转换成dict字典;jsonarray数组loads,转换成列表 JSON字符串到某种语言的解析过程叫反序列化 MongoDB是nosql数据库的代表,比较适合存储序列化后的数据 反序列化是将 JSON数据类型转化成python数据类型 关键在于

java枚举类型中分号的用法

风格不统一 提交于 2019-12-04 13:51:51
在java中写枚举类型的对象时,发生一个十分诡异的情况 public enum SeckillStatEnum { ;在没有写内容的时候,这个分号可有可无。但是如果里面写有方法,这个分号就必须带上。 }   idea的解释是Enum SeckillStatEnum没有被使用.... 在网上也没找到相应的解释,先留着回去查查书 .... 破案了....写了个枚举,没用到枚举的特性可不就是没有使用嘛... 出问题的代码 /* * 使用枚举来表示常量数据字段 * */ public enum SeckillStatEnum { ; private int state; private String stateInfo; SeckillStatEnum(int state, String stateInfo) { this.state = state; this.stateInfo = stateInfo; } public int getState() { return state; } public String getStateInfo() { return stateInfo; } public static SeckillStatEnum stateOf(int index){ for(SeckillStatEnum state :values()){ if(state