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

做网站建设公司企业做淘宝一件代发的网站

做网站建设公司企业,做淘宝一件代发的网站,万网网站后台管理,网站平台被骗了怎么办泛型 Java 泛型#xff08;generics#xff09;是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制#xff0c;该机制允许程序员在编译时检测到非法的类型。 泛型的本质是参数化类型#xff0c;也就是说所操作的数据类型被指定为一个参数。 Java的泛型是伪…泛型 Java 泛型generics是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制该机制允许程序员在编译时检测到非法的类型。 泛型的本质是参数化类型也就是说所操作的数据类型被指定为一个参数。 Java的泛型是伪泛型这是因为Java在编译期间所有的泛型信息都会被擦掉这也就是通常所说类型擦除 。泛型擦除 泛型一般有三种使用方式:泛型类、泛型接口、泛型方法。 public class TypeE{} public interface InterfaceE {} public E E test(E e) {return e; }? extends T和? super T的区别 【了解】 分两种情况 1. 作为容器时 【了解】 ? extends T没有意义只能存null ? super T可以放它本身和其子类类型可以存null public static void main(String[] args) {SuperMan man new SuperMan();Person p new Person(, 1);Student s new Student(, 1);List? extends Person list new ArrayList(); // list.add(man); // list.add(p); // list.add(s); // list.add(1);list.add(null);List? super Person list1 new ArrayList(); // list1.add(new Object()); // list1.add(man);list1.add(p);list1.add(s);list1.add(null); // list1.add(1);} public class Person extends SuperMan implements Comparable{private String name;private int age;//省略部分代码}class Student extends Person{public Student(String name, int age) {super(name, age);}}class SuperMan {}2. 作为方法参数时 ? extends T支持其本身类型及其子类类型也就是设置上限。 ? super T支持本身类型及其父类类型也就是设置下限。 public static void main(String[] args) {ListObject listObj new ArrayList();ListSuperMan listMan new ArrayList();ListPerson listPson new ArrayList();ListStudent listStu new ArrayList();// ? extends Person // test(listObj); // test(listMan);test(listPson);test(listStu);// ? super Persontest1(listObj);test1(listMan);test1(listPson); // test1(listStu);}public static void test(List? extends Person list) {}public static void test1(List? super Person list) {}常用的通配符为 TEKV通配符介绍 ? 表示不确定的 java 类型T (type) 表示具体的一个java类型K V (key value) 分别代表java键值中的Key ValueE (element) 代表Element 泛型的使用限制 1. 无法使用基本数据类型 Listint list new ArrayList(); // 编译时错误2. 无法创建泛型参数类型的实例 public E void test(E e) {E e1 new E(); // 编译时错误 }但是可以通过反射来创建对象 public E void test(E e) {E e1 e.getClass().newInstance();// 正确 }3. 不能为static字段属性声明为泛型类型 class TestT{private static T name; // 编译错误private T age; // 正确 }4. 无法使用泛型类型进行强制类型转换或者 instanceof ListInteger li new ArrayList(); ListNumber ln (ListNumber)li; //编译错误除非使用无界符号(?)才可以强制转换 List? li new ArrayList(); ListNumber ln (ListNumber)li; // 或者 ListInteger li new ArrayList(); List? ln (List?)li;在某种情况下编译器知道泛型类型始终有效并允许强制类型转换 ListString li new ArrayList(); ArrayListString ln (ArrayListString)li;instanceof public E void test(ListE list) {if(list instanceof ArrayListString) {} //编译错误 }运行时是不跟踪参数类型的所以无法区分泛型类型。可以使用无界符号 public E void test(ListE list) {if(list instanceof ArrayList?) {} //正确 }5. 无法创建泛型类型的数组 ListString[] lists new ArrayListString[2]; //编译时错误将不同类型元素插入到数组中: Object[] objs new String[2]; objs[0] s; objs[1] 1; // java.lang.ArrayStoreException使用集合进行相同的操作 Object[] obs new ListString[2]; // 编译错误 obs[0] new ArrayListString(); obs[1] new ArrayListInteger();6. 无法创建、捕获或者抛出泛型类型异常 泛型不能直接或间接扩展Throwable类。 class ExT extends Exception{} // 编译错误 class ExcT extends Throwable{} // 编译错误无法捕获泛型类型实例 public T extends Exception void test() {try {}catch(T t) { // 编译错误} }但是可以在throws子句中出现 public T extends Exception void test() throws T{}7. 泛型擦除到原生类型的方法无法重载 ​ 因为泛型擦除后方法的签名一样。 public void test(ListString list) {} //编译错误 public void test(ListInteger list) {} // 编译错误
http://www.hkea.cn/news/14594227/

相关文章:

  • 运城做网站价格网站主机租用
  • 云南网站开发公司介绍济南网站建设sdjy6
  • 济宁哪里做网站最便宜天津快推科技有限公司
  • 门源县wap网站建设公司dw网页设计模板下载
  • 珠海网站建设费用网站手机页面做多大
  • 网站信息备案查询系统sem优化技巧
  • 大连网站建设联合企邦网络营销的目的
  • 机械设备企业网站源码张家港阿里网站建设
  • 精神文明网站建设内容昆山门户网站
  • 重庆主页网站建设西安关键词快速排名
  • 网站备案期间 权重站长统计
  • 用照片做视频的网站好h5个人网站源码
  • 企业做网站有用吗百度网站下载安装
  • 淄博建网站多少钱随州网站制作价格
  • 网站页头设计个人注册公司的详细步骤
  • 织梦网站怎么做优化移动互联网技术网站
  • 设计图片网站作品设计方案怎么写
  • 网站托管服务 重庆网站内容页面怎么做
  • 免费个人网站建站申请流程外贸网站推广上海
  • 移动建站价格传统网站模版
  • 潍坊网站公司外贸营销型网站建设平台
  • 兰州网站建设企业名录宣传片制作app
  • 手机扁平化网站模版制作购物网站需要多少钱
  • 泰州公司做网站网站建设 李奥贝纳
  • 个人做网站接装修活哪个网站好三类安全员证查询系统
  • 周村网站制作首选公司wordpress免签
  • 网站关键字优化技巧peise网站
  • 邢台专业做移动网站自己开发的app软件怎么申请专利
  • 泰州网站制作方案定制张家港安监站网址
  • 蓝田县住房与城乡建设局网站ps做网站的效果图