当前位置: 首页 > news >正文

凉山州建设局网站网站建设流程报告

凉山州建设局网站,网站建设流程报告,做网站所用的技术,杭州微信网站制作文章目录Type简介Type分类1. 原始类型(Class)2. 参数化类型(ParameterizedType)3. 类型变量(TypeVariable)4. 通配符类型(WildcardType)5. 泛型数组类型(GenericArrayType)Type简介 Type是Java编程语言中所有类型的公共高级接口。它们包括原始类型、参数化类型、数组类型、类型… 文章目录Type简介Type分类1. 原始类型(Class)2. 参数化类型(ParameterizedType)3. 类型变量(TypeVariable)4. 通配符类型(WildcardType)5. 泛型数组类型(GenericArrayType)Type简介 Type是Java编程语言中所有类型的公共高级接口。它们包括原始类型、参数化类型、数组类型、类型变量和基本类型。 Type接口本身算是一个标记接口不提供任何需要复写的方法。 Type分类 Type分类 Type分类名称Type类型描述举例原始类型ClassJava类、枚举、数组、注解、所有基本数据类型String、Date、Integer、int、boolean 等参数化类型ParameterizedType参数化类型泛型类型ListString、MapInteger,String、ListT、List?、List? extends Number、List? super Number 等类型变量TypeVariable泛型符号不包括通配符T、K、V、E 等通配符类型WildcardType通配符?、? extends Number、? super Number 等泛型数组类型GenericArrayType泛型数组List?[]、ListT[]、ListString[]、List? extends Number[]、T[] 等 获取Type JDK的Class、Field、Method类提供了一些列的获取类型的相关方法。 可参考文章Java中如何获取泛型类型信息 1. 原始类型(Class) 原始类型的Type实现类为Class。这个类型与泛型无关其它4个类型都和泛型相关。 原始类型主要包括Java类、枚举、数组、注解、所有基本数据类型。 示例 public class TypeTest {private String string;private Integer integer;private long lon;private int[] intArr;public static void main(String[] args) throws Exception {System.out.println(TypeTest.class.getDeclaredField(string).getGenericType() instanceof Class ? String是原始类型 : String不是原始类型);System.out.println(TypeTest.class.getDeclaredField(integer).getGenericType() instanceof Class ? Integer是原始类型 : Integer不是原始类型);System.out.println(TypeTest.class.getDeclaredField(lon).getGenericType() instanceof Class ? long是原始类型 : long不是原始类型);System.out.println(TypeTest.class.getDeclaredField(intArr).getGenericType() instanceof Class ? int[]是原始类型 : int[]不是原始类型);} }输出 String是原始类型 Integer是原始类型 long是原始类型 int[]是原始类型2. 参数化类型(ParameterizedType) 参数化类型的Type实现类为ParameterizedType。 参数化类型也就是泛型类型。 源码 public interface ParameterizedType extends Type {Type[] getActualTypeArguments();Type getRawType();Type getOwnerType(); }方法 getActualTypeArguments获取实际类型参数的Type集合getRawType获取声明此类型的类或接口的TypegetOwnerType如果声明此类型的类或接口为内部类这返回的是该内部类的外部类的Type也就是该内部类的拥有者 示例 public class TypeTestT {private MapInteger,String map;private ListString list1;private ListT list2;private List? list3;private List? extends Number list4;public static void main(String[] args) throws Exception {System.out.println(TypeTest.class.getDeclaredField(map).getGenericType() instanceof ParameterizedType ? MapInteger,String是参数化类型 : MapInteger,String不是参数化类型);System.out.println(TypeTest.class.getDeclaredField(list1).getGenericType() instanceof ParameterizedType ? ListString是参数化类型 : ListString不是参数化类型);System.out.println(TypeTest.class.getDeclaredField(list2).getGenericType() instanceof ParameterizedType ? ListT是参数化类型 : ListT不是参数化类型);System.out.println(TypeTest.class.getDeclaredField(list3).getGenericType() instanceof ParameterizedType ? List?是参数化类型 : List?不是参数化类型);System.out.println(TypeTest.class.getDeclaredField(list4).getGenericType() instanceof ParameterizedType ? List? extends Number是参数化类型 : List? extends Number不是参数化类型);System.out.println(-----------------------------------------------------------);ParameterizedType parameterizedType (ParameterizedType) TypeTest.class.getDeclaredField(map).getGenericType();for (Type actualTypeArgument : parameterizedType.getActualTypeArguments()) {System.out.println(getActualTypeArguments 方法返回值有 actualTypeArgument.getTypeName());}System.out.println(getRawType 方法返回值 parameterizedType.getRawType().getTypeName());System.out.println(getOwnerType 方法返回值 (parameterizedType.getOwnerType() ! null ? parameterizedType.getOwnerType().getTypeName() : null));} }输出 MapInteger,String是参数化类型 ListString是参数化类型 ListT是参数化类型 List?是参数化类型 List? extends Number是参数化类型 ----------------------------------------------------------- getActualTypeArguments 方法返回值有java.lang.Integer getActualTypeArguments 方法返回值有java.lang.String getRawType 方法返回值java.util.Map getOwnerType 方法返回值null3. 类型变量(TypeVariable) 类型变量的Type实现类为TypeVariable。 类型变量急速指的泛型符号不包括通配符。 源码 public interface TypeVariableD extends GenericDeclaration extends Type, AnnotatedElement {Type[] getBounds();D getGenericDeclaration();String getName();AnnotatedType[] getAnnotatedBounds(); }方法 getBounds类型变量对应的上边界。如果没有指定上限返回Object可以有多个getGenericDeclaration获取类型变量所在类的Type。getName获取类型变量在源码中定义的名称getAnnotatedBounds获取注解类型的上限数组 示例 public class TypeTestT {private ListT list2;private List? list3;private List? extends Number list4;public static void main(String[] args) throws Exception {System.out.println(((ParameterizedType)TypeTest.class.getDeclaredField(list2).getGenericType()).getActualTypeArguments()[0] instanceof TypeVariable ? T是类型变量 : T不是类型变量);System.out.println(((ParameterizedType)TypeTest.class.getDeclaredField(list3).getGenericType()).getActualTypeArguments()[0] instanceof TypeVariable ? ?是类型变量 : ?不是类型变量);System.out.println(((ParameterizedType)TypeTest.class.getDeclaredField(list4).getGenericType()).getActualTypeArguments()[0] instanceof TypeVariable ? ? extends Number是类型变量 : ? extends Number不是类型变量);System.out.println(---------------------------------------------------------------);TypeVariable typeVariable (TypeVariable)((ParameterizedType) TypeTest.class.getDeclaredField(list2).getGenericType()).getActualTypeArguments()[0];for (Type bound : typeVariable.getBounds()) {System.out.println(getBounds 方法返回值有 bound.getTypeName());}System.out.println(getGenericDeclaration 方法返回值 typeVariable.getGenericDeclaration());System.out.println(getName 方法返回值 typeVariable.getName());for (AnnotatedType annotatedType : typeVariable.getAnnotatedBounds()) {System.out.println(getAnnotatedBounds 方法返回值有 annotatedType.getType().getTypeName());}} }输出 T是类型变量 ?不是类型变量 ? extends Number不是类型变量 --------------------------------------------------------------- getBounds 方法返回值有java.lang.Object getGenericDeclaration 方法返回值class com.joker.test.generic.TypeTest getName 方法返回值T getAnnotatedBounds 方法返回值有java.lang.Object4. 通配符类型(WildcardType) 通配符类型的Type实现类为WildcardType。 源码 public interface WildcardType extends Type {Type[] getUpperBounds();Type[] getLowerBounds(); } 方法 getUpperBounds泛型表达式的上边界表达式中使用extendsgetLowerBounds泛型表达式的下边界表达式中使用super 示例 public class TypeTestT {private ListT list2;private List? list3;private List? extends Number list4;private List? super Number list5;public static void main(String[] args) throws Exception {System.out.println(((ParameterizedType)TypeTest.class.getDeclaredField(list2).getGenericType()).getActualTypeArguments()[0] instanceof WildcardType ? T是通配符类型 : T不是通配符类型);System.out.println(((ParameterizedType)TypeTest.class.getDeclaredField(list3).getGenericType()).getActualTypeArguments()[0] instanceof WildcardType ? ?是通配符类型 : ?不是通配符类型);System.out.println(((ParameterizedType)TypeTest.class.getDeclaredField(list4).getGenericType()).getActualTypeArguments()[0] instanceof WildcardType ? ? extends Number是通配符类型 : ? extends Number不是通配符类型);System.out.println(((ParameterizedType)TypeTest.class.getDeclaredField(list5).getGenericType()).getActualTypeArguments()[0] instanceof WildcardType ? ? super Number是通配符类型 : ? super Number不是通配符类型);System.out.println(-----------------------------------------------);WildcardType wildcardType1 (WildcardType)((ParameterizedType) TypeTest.class.getDeclaredField(list4).getGenericType()).getActualTypeArguments()[0];System.out.println(List? extends Number 上边界wildcardType1.getUpperBounds()[0].getTypeName());WildcardType wildcardType2 (WildcardType)((ParameterizedType) TypeTest.class.getDeclaredField(list5).getGenericType()).getActualTypeArguments()[0];System.out.println(List? super Number 上边界wildcardType2.getUpperBounds()[0].getTypeName());System.out.println(List? super Number 下边界wildcardType2.getLowerBounds()[0].getTypeName());} }输出 T不是通配符类型 ?是通配符类型 ? extends Number是通配符类型 ? super Number是通配符类型 ----------------------------------------------- List? extends Number 上边界java.lang.Number List? super Number 上边界java.lang.Object List? super Number 下边界java.lang.Number5. 泛型数组类型(GenericArrayType) 泛型数组类型的Type实现类为GenericArrayType。 注意普通类型的数组不属于泛型数组类型如int[]、Long[]、String[]。 源码 public interface GenericArrayType extends Type {Type getGenericComponentType(); }方法 getGenericComponentType返回泛型数组中成员类型 示例 public class TypeTestT {private String[] list;private ListString[] list1;private ListT[] list2;private List?[] list3;private List? extends Number[] list4;private T[] list5;public static void main(String[] args) throws Exception {System.out.println(TypeTest.class.getDeclaredField(list).getGenericType() instanceof GenericArrayType ? String[]是泛型数组类型 : String[]不是泛型数组类型);System.out.println(TypeTest.class.getDeclaredField(list1).getGenericType() instanceof GenericArrayType ? ListString[]是泛型数组类型 : ListString[]不是泛型数组类型);System.out.println(TypeTest.class.getDeclaredField(list2).getGenericType() instanceof GenericArrayType ? ListT[]是泛型数组类型 : ListT[]不是泛型数组类型);System.out.println(TypeTest.class.getDeclaredField(list3).getGenericType() instanceof GenericArrayType ? List?[]是泛型数组类型 : List?[]不是泛型数组类型);System.out.println(TypeTest.class.getDeclaredField(list4).getGenericType() instanceof GenericArrayType ? List? extends Number[]是泛型数组类型 : List? extends Number[]不是泛型数组类型);System.out.println(TypeTest.class.getDeclaredField(list5).getGenericType() instanceof GenericArrayType ? T[]是泛型数组类型 : T[]不是泛型数组类型);System.out.println(------------------------------------------------------);System.out.println(ListString[] 数组成员类型((GenericArrayType) TypeTest.class.getDeclaredField(list1).getGenericType()).getGenericComponentType().getTypeName());System.out.println(ListT[] 数组成员类型((GenericArrayType) TypeTest.class.getDeclaredField(list2).getGenericType()).getGenericComponentType().getTypeName());System.out.println(List?[] 数组成员类型((GenericArrayType) TypeTest.class.getDeclaredField(list3).getGenericType()).getGenericComponentType().getTypeName());System.out.println(List? extends Number[] 数组成员类型((GenericArrayType) TypeTest.class.getDeclaredField(list4).getGenericType()).getGenericComponentType().getTypeName());System.out.println(T[] 数组成员类型((GenericArrayType) TypeTest.class.getDeclaredField(list5).getGenericType()).getGenericComponentType().getTypeName());} }输出 String[]不是泛型数组类型 ListString[]是泛型数组类型 ListT[]是泛型数组类型 List?[]是泛型数组类型 List? extends Number[]是泛型数组类型 T[]是泛型数组类型 ------------------------------------------------------ ListString[] 数组成员类型java.util.Listjava.lang.String ListT[] 数组成员类型java.util.ListT List?[] 数组成员类型java.util.List? List? extends Number[] 数组成员类型java.util.List? extends java.lang.Number T[] 数组成员类型T
http://www.hkea.cn/news/14574889/

相关文章:

  • 视频制作公司需要什么资质鞍山做网站优化
  • 网站 色彩欧美做的爱爱网站
  • 合肥做网站123cmsjs 访问网站统计刷新不增加次数
  • 云浮住房和城乡建设部官方网站免费网站模板 php
  • 黄页引流推广包年seo和整站优化
  • 网站建设软件sh江西旅游网站建设方案
  • 水墨风格 网站网站建设的大纲
  • 学校网站建设流程步骤温州哪里做网站设计
  • 公司网站建设介绍灵感素材库
  • 网站质量需求中国建设银行大学助学贷款网站
  • 青海西宁学做网站在哪wordpress后台怎么登陆
  • 宁波免费建站房地产销售工资一般多少钱一个月
  • 滴道网站建设潜江资讯网招聘信息2023年
  • 帮人负责做网站叫什么工作本地岑溪网站开发
  • 原创文字的网站广告投放平台主要有哪些
  • 凡科网代理商登录如何做优化排名
  • 绍兴网站关键词推广服装生产erp管理软件
  • 网站建设 项目书 框架青海建筑人才网
  • 渭南做网站电话办公空间设计说明200字
  • 提供温州手机网站制作哪家便宜网站制作建设模板
  • 响水网站建设公司wordpress时间设置
  • 2003 iis网站发布网站开发项目建设经验
  • 北京网站seo排名优化网站制作公司美股上市
  • 网站改版好吗郑州哪有做网站的
  • 网站模板中企动力网站地图什么意思
  • 公司网站推广技巧微信运营是做什么的
  • 麦客网做网站建e网室内设计网官网全景图库
  • 网站建设需要包含什么电商平台建设费用
  • 电子商务网站建设评价网站中 点击出现登录框怎么做
  • 山东网站开发公司安全网站开发