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

Java 枚举使用

在日常写项目时,很多数据字典常量都需要定义和使用,同时在 Java 面试枚举也是一个绕不开的话题,这篇文章就来详细介绍一下枚举定义以及使用。 01  【什么是枚举?】...枚举定义就是指将变量值一一列出来,变量值只限于列举出来范围内,使用枚举可以很方便地定义数据常量、以及我们使用。 02  【为什么需要枚举?】...在大一点项目中,可以使用数百个静态常量。如果它们都写在一个文件里面的话,很容易造成命名混乱,程序也很难读取。 (3)可以帮助我们定义所需类型。 枚举易于记忆和使用,相当于一个接口。...使用时,只需封装内部数据类型并限制数据字段。 此外,还可以为不同枚举变量调用不同处理方法(这可以通过实现枚举抽象方法来实现)。...03  【枚举定义和使用】 下面就定义一个试题类型枚举来帮助大家理解:

1.6K20
您找到你想要的搜索结果了吗?
是的
没有找到

SpringBoot 实战:优雅使用枚举参数

接口开发过程不免有表示类型参数,比如 0 表示未知,1 表示男,2 表示女。通常有两种做法,一种是用数字表示,另一种是使用枚举实现。...使用数字表示就是通过契约形式,约定每个数字表示含义,接口接收到参数,就按照约定对类型进行判断,接口维护成本比较大。...在 Spring 体系使用枚举表示,是借助 Spring Converter 机制,可以将数字或字符串对应到枚举序号或者 name,然后将前端输入转换为枚举类型。...我们期望定义一个枚举作为参数,接口访问时候,可以是 int 类型 id,id 取值不限于枚举序号;也可以是 String 类型 code,code 取值不限于枚举 name。...需要注意是,注意枚举唯一 id 和 code。

2K00

Python中使用枚举

开发我们经常定义常量, 其实有更好方法:为这样枚举类型定义一个class类型,然后,每个常量都是class一个唯一实例。...Python中提供了Enum来实现这个功能: from enum import Enum Numbers = Enum('Name', ('乔峰', '鸠摩智', '段誉', '阿紫', '虚竹',....段誉 , 3 阿紫 => Name.阿紫 , 4 虚竹 => Name.虚竹 , 5 慕容复 => Name.慕容复 , 6 6 Name.虚竹 Name.鸠摩智 上面我们就获得了Numbers类型枚举...,可以直接使用: Numbers.乔峰 来引用一个常量,或者枚举所有成员。...value属性则是自动赋给成员int常量,默认从1开始计数。 可见,我们既可以用成员名称引用枚举常量,又可以直接根据value值获得枚举常量。

43610

设计模式——把作为参数抽象工厂模式

主要用途一般是将一些复杂创建过程整合在一起,通过参数控制,这样使用者可以较简单地获得实例。 抽象工厂 抽象工厂模式和工厂模式类似,只不过更加抽象了一层。...在创建实例时候,不是通过参数来控制,而是直接传入想要创建。这一点其实也是Python特性,一切皆是对象,一切皆可传参,本身也是一个对象,也是可以传参。...这里抽象主要是把工厂当做了一个更高阶抽象,有点像是抽象反向使用。...也就是说凡是拥有speak这个子类都可以用来创建PetCollection,这个PetCollection相当于一个抽象通用,这样我们在使用时候可以用它来集成很多逻辑,简化操作。...我第一次看这个设计模式时候,觉得普普通通,不过是把当做参数而已。但是之后又看了一次,又有了新理解,这不也是抽象反向使用吗?

1.1K20

【Kotlin】常用 Kotlin ② ( 枚举 | 枚举定义函数 | 密封 )

枚举 常量名称 ; MALE true 枚举常量 Gender.MALE 是 Gender 一个 实例对象 ; 二、枚举定义函数 ---- 在枚举 , 可以 定义函数 , 包括 普通函数...和 构造函数 ; 1、枚举定义普通函数 通过 枚举 类型常量 ( 实例对象 ) 可以 调用 枚举定义方法 ; 为枚举定义普通函数 : 在枚举 Gender 定义了 log 函数 ,...为枚举定义构造函数后 , 每个枚举常量都要传入对应构造函数参数 ; 为枚举定义构造函数 : enum class Gender(var id: Int) { MALE(0), FEMALE...---- 枚举类型 是一组 子类型 闭集 ; 密封 可以 定义 枚举类型 子类型闭集 , 一个密封可以有多个子类 , 继承密封子类 必须 与 密封在相同 Kotlin 代码文件 ; 密封适用于这种情况..., 要使用枚举特性 , 但是需要在枚举基础上保存多个特性 ; 枚举只能实现简单常量列举 , 如果需要更复杂 子类型闭集 , 则需要使用密封 ; 代码示例 : sealed class Gender

1K10

使用结构体作为函数输入参数

使用结构体作为函数输入参数的话,在更新函数时候,就没有必要把函数声明以及所有调用函数地方全部更新一遍,相对还比较方便,对于输入参数比较多函数可以使用结构体作为输入参数。...常用有三种方式,分别是:用结构体变量作函数参数,用指向结构体变量指针作函数参数,用结构体变量引用变量作函数参数。...“值传递”方式,结构体变量作为函数参数,修改之后成员值不能返回到主调函数,这往往造成使用不便,因此一般少用这种方法。...结构体指针变量作为函数参数,修改后结构体成员值能返回到主调函数,并且,在调用函数期间,仅仅建立了一个指针变量,大大减小了系统开销,提高了运行效率。...用结构体变量引用变量作函数参数(用于C++): #include #include struct test { int a; float

2.7K30

LuceneAttributeSource作为TokenStream父原因

AttributeImpl派生定义。...AttributeImpl.Class创建AttributeImpl实例,并返回,如果不存在这样映射关系,那么AttributeFactory将使用下述方法添加这种映射并创建实例返回。...LuceneAttributeSource作为TokenStream父原因 2.1 TokenStream作用是从给入文本不断解析出Token,具体做法是TokenStream有方法incrementToken...,如果使用上述方法实现TokenStream,则必然嵌套流每层流都将有自己属性实例,而层次之间可能会出现同样属性,也就是说同样属性实例在流层次可能会有多个,这样是没有必要,也就是说对相同属性在流层次只有一个实例就可以满足分析需求了...为什么说不用反射实现是基于效率考虑,这是因为如果使用AttributeSource实现只有在首次注册属性时才会使用反射机制,以后都是直接获取,而如果纯使用反射机制保证流嵌套层次都关心属性实例唯一性,

51310

myabtis是否可以映射 Enum 枚举

有的时候博客内容会有变动,首发博客是最新,其他博客地址可能会未同步,认准https://blog.zysicyj.top MyBatis映射Enum枚举 在MyBatis,映射Enum枚举是完全可行...使用TypeHandler映射枚举 MyBatisTypeHandler接口允许你定义如何将Java类型和数据库类型进行转换。...对于枚举类型,你可以创建一个自定义TypeHandler来处理枚举类型映射。 「示例:」 假设你有一个名为Status枚举,它表示不同状态值。...使用MyBatis内置EnumTypeHandler MyBatis 3.4.5及以上版本内置了EnumTypeHandler,它可以自动映射枚举名称(name()返回值)到数据库字符串。...如果你想映射枚举序数(即其在枚举声明位置),你可以使用EnumOrdinalTypeHandler。

33110

面向对象之this指针与枚举类型

this指针与枚举类型 1.this指针 相信在坐很多人,都在学Python,对于Python来说有self,类比到C++中就是this指针,那么下面一起来深入分析this指针在使用!...(2)this作用域是在内部,当在非静态成员函数访问非静态成员时候,编译器会自动将对象本身地址作为一个隐含参数传递给函数。...其次,this指针使用: (1)在非静态成员函数返回对象本身时候,直接使用 return *this。 (2)当参数与成员变量名相同时,如this->n = n (不能写成n = n)。...2.枚举类型 有时我们希望某些常量只在中有效。由于#define 定义宏常量是全局,不能达到目的,于是想到实用const 修饰数据成员来实现。...别指望 const 数据成员了,应该用枚举常量来实现。

1.1K10

Mybatis自定义枚举处理器优雅地使用枚举

在和前端开发对接接口过程中经常发现需要一些枚举字典参数,虽然可以通过swagger在线文档给前端开发,不过可以直接返回枚举编码和字典值就可以更直观,所以在项目里怎么实现?...可以通过Mybatis一些接口,自定义枚举处理器实现 环境准备 开发环境 JDK 1.8 SpringBoot2.2.1 Maven 3.2+ 开发工具 IntelliJ IDEA smartGit...写一个枚举工具,根据code和name返回对应枚举,根据反射获取getEnumConstants,循环匹配 package com.example.springboot.mybatis.common.enumhandler...jdbcType) 用于定义设置参数时把Java类型参数转换为对应数据库类型 T getNullableResult(ResultSet rs, String columnName) 用于定义通过字段名称获取字段数据时把数据库类型转换为对应...需要枚举就继承IEnum接口 package com.example.springboot.mybatis.bean; import com.example.springboot.mybatis.common.enumhandler.IEnum

70330
领券