java valueOf 四、java枚举类型enum值与整数的转换

valueOf 方法可以将原生数值类型转化为对应的Number类型,java.lang.Number 基类包括ouble、Float、Byte、Short、Integer 以及 Long派生类,

也可以将string,原始数值转化为String对象

还可以将字符串转化为对应的枚举对象(实际是 根据枚举变量的name来获取枚举变量的值)

Java中泛型Class<T>、T与Class<?>

一.区别

单独的T 代表一个类型 ,而 Class<T>代表这个类型所对应的类, Class<?>表示类型不确定的类

复制代码
 E - Element (在集合中使用,因为集合中存放的是元素)
 T - Type(Java 类)
 K - Key(键)
 V - Value(值)
 N - Number(数值类型)
 ? -  表示不确定的java类型

举例说明: 
Set<T> 表示 集合里 是   T类的实例 
List<E> 表示  集合里 是  E类的实例 
List<?> 表示 集合里的对象类型不确定,未指定 
List 同 List<?> 是一样的。 

泛型的作用: 
1、用泛型: 
Java代码  收藏代码
List<T> list=new ArrayList<T>();  
T t=list.get(0);  

2、不用泛型: 
Java代码  收藏代码
List  list=new ArrayList();  
T t=(T)list.get(0);
复制代码

二、如何创建一个Class<T>类型的实例?

      就像使用非泛型代码一样,有两种方式:调用方法 Class.forName() 或者使用类常量X.class。      Class.forName() 被定义为返 回 Class<?>。另一方面,类常量 X.class 被定义为具有类型 Class<X>,所 以 String.class 是Class<String> 类型的。

三、方法中为什么需要<T> T修饰呢

泛型的声明,必须在方法的修饰符(public,static,final,abstract等)之后,返回值声明之前。

public static <T> T request2Bean(HttpServletRequest request,Class<T> clazz){}

其中第一个<T>是与传入的参数Class<T>相对应的,相当于返回值的一个泛型,后面的T是返回值类型,代表方法必须返回T类型的(由传入的Class<T>决定)

四、java枚举类型enum值与整数的转换

java编程中偶尔会用到枚举,为了直观,我们通常将枚举值设置为形象的单词,方便理解和使用。枚举类型相当于数据库

中字典表,但是枚举只有字典表的值,缺少其他用来表示和值一一对应的字段,当我们在数据库中保存一个对应枚举类型

的列,我们希望保存的是类似0,1,2,3,4这样的数字,然后,表现在实体对象中,我们希望看到的是具有语义并且形象的字

符串,因此编码过程中,我们会对枚举的值做一个映射。定义枚举语法如下:

public enum APPTYPE {
install,
download,
click,
datareport
feedback
}
这样,一个枚举类型的变量APPTYPE就声明好了。接下来就会使用这个枚举类型。枚举类型对外提供了这样几个方法。
values():返回枚举值的数组
ordinal():返回枚举值在枚举元素数组中的下标
name():返回枚举值的字符串,相当于toString(),枚举的名称和枚举的值一样,一个是字符串类型,一个枚举类型
通过这几个方法我们可以方便来对枚举值和整数做映射。

例如我们想知道click对应的整数,可以通过APPTYPE.click.ordinal(),得到整数2

想知道3对应枚举中的值,可以通过APPTYPE.values()[3]来得到。

 枚举相当于class,每个枚举项是通过枚举的private构造函数构造出来的实例

转载于:https://www.cnblogs.com/fpcbk/p/11013884.html

猜你喜欢

转载自blog.csdn.net/weixin_33932129/article/details/92845299