java-枚举类型(代码片段)

旷世奇才李先生 旷世奇才李先生     2022-10-22     525

关键词:

勤能补拙
文章持续更新,可以微信搜索【小奇JAVA面试】第一时间阅读,回复【资料】获取福利,回复【项目】获取项目源码,回复【简历模板】获取简历模板,回复【学习路线图】获取学习路线图。

文章目录


前言

枚举类型可以取代以往常量的定义方式,即将常量封装在类或接口中,此外,它还提供了安全检查功能。枚举类型本质上还是以类的形式存在。泛型的出现不仅可以让程序员少写某些代码,主要的作用是解决类型安全问题,它提供编译时的安全检查,不会因为将对象置于某个容器中而失去其类型。

一、枚举类型

使用枚举类型可以取代以往定义常量的方式,同时枚举类型还赋予程序在编译时进行检查的功能。

1、使用枚举类型设置常量

以往设置常量,通常将常量放置在接口中,这样在程序中就可以直接使用,并且该常量不能被修改,因为在接口中定义常量时,该常量的修饰符为final与static。

枚举类型出现后,逐渐取代了这种常量定义方式。使用枚举类型定义常量的语法如下:

public enum Constants
	Constants_A,
	Constants_B,
	Constants_C

2、深入了解枚举类型

1、操作枚举类型成员的方法
枚举类型较传统定义常量的方式,除了具有参数类型检测的优势之外,还具有其他方面的优势。用户可以将一个枚举类型看作是一个类,它继承于java.lang.Enum类,当定义一个枚举类型时,每一个枚举类型成员都可以看作是枚举类型的一个实例,这些枚举类型成员都默认被final、public、static修饰,所以当使用枚举类型成员时直接使用枚举类型名称调用枚举类型成员即可。
由于枚举类型对象继承于java.lang.Enum类,所以该类中一些操作枚举类型的方法都可以应用到枚举类型中。下表就是常用的枚举类型方法。

方法名称具体含义使用方法举例
values()该方法可以将枚举类型成员以数组的形式返回枚举类型名称.values()Constants2.values()
valueOf()该方法可以实现将普通字符串转换为枚举实例枚举类型名称.valueOf(“abc”)Constants2.valueOf(“abc”)
compareTo()该方法用于比较两个枚举对象在定义时的顺序枚举对象.compareTo()Constants_A.compareTo(Constants_B)
ordinal()该方法用于得到枚举成员的位置索引枚举对象.ordinal()Constants_A.ordinal()

3、访问方法

在通过下列一组方法访问方法时,将返回Method类型的对象或数组。每个Method对象代表一个方法,利用Method对象可以操纵相应的方法。

getMethods()
getMethod(String name,Class<?>...parameterTypes) getDeclaredMethods() getDeclaredMethod(Sting name,Class<?>…parameterTypes)

二、泛型

泛型实质上就是使程序员定义安全的类型。在没有出现泛型之前,Java也提供了对Object的引用“任意化”操作,这种“任意化”操作就是对Object引用进行向下转型及向上转型操作,但某些强制类型转换的错误也许不会被编译器捕捉,而在运行后出现异常,可见强制类型转换存在安全隐患,所以在此提供了泛型机制。

1、定义泛型类

Object类为最上层的父类,很多程序员为了使程序更为通用,设计程序时通常使传入的值与返回的值都以Object类型为主。当需要使用这些实例时,必须正确地将该实例转换为原来的类型,否则在运行时将会发生ClassCastException异常。
泛型语法如下:

类名<T>

2、泛型的常规用法

1、定义泛型类时声明多个类型
在定义泛型类时,可以声明多个类型。语法如下:

MutiOverClass<T1,T2>
MutiOverClass;泛型类名称

其中,T1和T2为可能被定义的类型。

2、定义泛型类型时声明数组类型
定义泛型类时也可以声明数组类型,下面的实例中定义泛型时便声明了数组类型。

public class ArrayClass<T>
	private T[] array;
	public void SetT(T[] array)
		this.array = array;
	

3、泛型的高级用法

泛型的高级用法包括限制泛型可用类型和使用类型通配符等。
1、限制泛型可用类型
默认可以使用任何类型来实例化一个泛型类对象,但Java中也对泛型类实例的类型作了限制。语法如下:

class 类名称<T extends anyClass>

其中,anyClass指某个接口或类。
使用泛型限制后,泛型类的类型必须实现或继承了anyClass这个接口或类。无论anyClass是接口还是类,在进行泛型限制时都必须使用extends关键字。

2、使用类型通配符
在泛型机制中,提供了类型通配符,其主要作用是在创建一个泛型类对象时限制这个泛型类的类型实现或继承某个接口或类的子类。要声明这样一个对象可以使用“?”通配符来表示,同时使用extends关键字来对泛型加以限制。
使用泛型类型通配符的语法如下:

泛型类名称<? extends List> a = null;

其中,<? extends List>表示类型未知,当需要使用该泛型对象时,可以单独实例化。

3、继承泛型类与实现泛型接口
定义为泛型的类和接口也可以被继承与实现。
例如在项目中创建一个类文件,在该类中继承泛型类。

public class ExtendClass<T1>

class SubClass<T1,T2,T3> extends ExtendClass<T1>

三、总结

这里的相关内容还没有整理完毕,文章后面持续更新,建议收藏。

文章中涉及到的命令大家一定要像我一样每个都敲几遍,只有在敲的过程中才能发现自己对命令是否真正的掌握了。

可以微信搜索【小奇JAVA面试】第一时间阅读,回复【资料】获取福利,回复【项目】获取项目源码,回复【简历模板】获取简历模板,回复【学习路线图】获取学习路线图。

java-枚举类型(代码片段)

...回复【学习路线图】获取学习路线图。文章目录前言一、枚举类型1、使用枚举类型设置常量2、深入了解枚举类型3、访问方法二、泛型1、定义泛型类2、泛型的常规用法3、泛型的高级用法三、总结前言 查看详情

java学习整理系列之java枚举类型的原理(代码片段)

上一篇:Java学习整理系列之Java枚举类型的使用http://blog.csdn.net/sup_heaven/article/details/35295851本以为RED只是一个Color类的一个staticfinal的实例而已。但后然发现不是这样的,先看看下面的一种枚举类型使用的代码。packagecom.lxq.... 查看详情

java笔记-通过反射获取枚举类型中所有数据(代码片段)

程序运行截图如下:代码如下:Em.javapackagecn.it1995;publicenumEmONE(1,"第一个枚举"),TWO(2,"第二个枚举"),THREE(3,"第三个枚举"),FOUR(4,"第四个枚举");privateIntegerid;privateStringdescribe;E 查看详情

我奶奶都能懂java枚举类型(代码片段)

本不打算写枚举的,但最近在review同事的代码时,发现大家对枚举类型的使用不是很到位,当问他们枚举类型相关概念时,他们都不是很清楚,回答的是:用到的时候再去网上查一下。个人觉得,搞开... 查看详情

java实用类总结(代码片段)

1.什么是枚举类?访问修饰符Enum枚举名称其应用上可以看做一个类去定义,如果枚举里有方法,定义的枚举常量要以‘:‘结尾2.应用枚举的好处?枚举限制了范围,更加安全,如果要大量定义常量用publicfinalstaticA=1;定义起来太... 查看详情

java枚举小结(代码片段)

...项目中看见了一种新的定义常量形式,了解了下JAVA的枚举类。一、什么是枚举  枚举(enum)类型是Java5新增的特性,它是一种新的类型,允许用常量表示特定的数据片段,而且全部都已类型安全的形式表... 查看详情

java相关总结(代码片段)

枚举类添加构造器、方法、域。publicenumSizeSMALL("S"),MEDUIM("M"),LARGE("L");privateStringabbreviation;privateSize(Stringabbreviation)this.abbreviation=abbreviation;publicStringgetAbbreviation()returnabbreviation;所有的枚举类型都是Enum的子类,常用方法:toString,返... 查看详情

java基础语法详解java的枚举(代码片段)

文章目录1.定义2.使用2.1枚举类型可以用在switch语句2.2枚举类的常用内部方法2.3自定义枚举的构造方法2.4包含抽象方法的枚举类3.枚举类不能通过反射获取实例(面试题)4.枚举的优点和缺点1.定义Java的枚举是一个特殊的类... 查看详情

java枚举的用法(代码片段)

java枚举的用法1.枚举类型的使用packagecom.longfor.devops.eagleeye.client.dto;importlombok.Data;/***@authorliuyang*/@DatapublicclassAppStatusDTO/***app的ID*/privateStringappInstanceId;/***app的状态*/privateStatusstatu 查看详情

java并发:五种线程安全类型线程安全的实现枚举类型(代码片段)

点击关注公众号,实用技术文章及时了解来源:blog.csdn.net/u014454538/article/details/985158071.Java中的线程安全Java线程安全:狭义地认为是多线程之间共享数据的访问。Java语言中各种操作共享的数据有5种类型:不可变、... 查看详情

java枚举(代码片段)

之前对枚举不是很了解,今天用到了,就明白了,直接放出一个枚举类型,说明一下用法:1publicenumFuluBillStatus23BILL_STATUS_unprocessed(1,"未处理"),4BILL_STATUS_processed(2,"处理中"),5BILL_STATUS_successful(3,"成功"),//(支付成功)6BILL_STATUS_failed(4,"... 查看详情

java枚举类型在rpc调用时由于版本不一致遇见的问题(代码片段)

...xff0c;作业类型存在多种,作业类型的区分使用的是Java枚举类表示,在每次调用服务接口时候传入枚举值以表示要执行的作业类型。 问题发现进行联调测试时候发现每次客户端传入的类型与服务提供方真实执行的作业类... 查看详情

java枚举类型用法(代码片段)

文章目录枚举1.1概述1.2定义格式1.3枚举的特点枚举中的抽象方法1.4枚举的方法枚举1.1概述为了间接的表示一些固定的值,Java就给我们提供了枚举枚举是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内1.2定义... 查看详情

java实用类(代码片段)

.枚举使用enum关键字来修饰是的它成为一个枚举类型由一组固定的常量组成的类型,可以视枚举为一组长量的集合枚举中不能存在普通函数与普通变量。publicenumWeekEnum//表示周一到周日MON,THES,WEB,THUR,FRI,STA,SUN .包装类每个基本... 查看详情

关于android:kotlin中的枚举注释类型(代码片段)

在Java中,我可以定义枚举注释类型(从此处开始)//ConstantspublicstaticfinalStringWINTER="Winter";publicstaticfinalStringSPRING="Spring";publicstaticfinalStringSUMMER="Summer";publ 查看详情

关于android:kotlin中的枚举注释类型(代码片段)

在Java中,我可以定义枚举注释类型(从此处开始)//ConstantspublicstaticfinalStringWINTER="Winter";publicstaticfinalStringSPRING="Spring";publicstaticfinalStringSUMMER="Summer";publ 查看详情

java连载81-枚举类型,生成五个不重复的随机数,集合简介(代码片段)

一、枚举类型1.枚举类型的格式就是enum+枚举类型的名称,可见下面的例子。packagecom.bjpowernode.java_learning;?publicclassD81_1_publicstaticvoidmain(String[]args)/***需求:定义一个方法,该方法的作用是计算两个int类型数据的商*如果计算成功则... 查看详情

掌握java枚举这几个知识点,日常开发就够啦(代码片段)

前言春节来临之际,祝大家新年快乐哈。整理了Java枚举的相关知识,算是比较基础的,希望大家一起学习进步。一、枚举类型是什么?JDK5引入了一种新特性,关键字enum可以将一组具名的值的有限集合创建为一种新的类型,而这... 查看详情