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

e点互动网站百度商城购物

e点互动网站,百度商城购物,公司网站建设企划书,企业简介 网站建设泛型&#xff1a; 定义类、接口、方法的时候&#xff0c;同时声明了一个或者多个类型变量&#xff08;如: <E>&#xff09;,称之为泛型类、泛型接口、泛型方法&#xff0c;我们统称之为泛型。 说明这是一个泛型类。 如果不使用泛型&#xff0c;我们可以往ArrayList中传…

泛型:

定义类、接口、方法的时候,同时声明了一个或者多个类型变量(如: <E>),称之为泛型类、泛型接口、泛型方法,我们统称之为泛型。

说明这是一个泛型类。

如果不使用泛型,我们可以往ArrayList中传入各种对象,get方法返回的是Object类对象。

package cn.ensource.d8_generics;import java.util.ArrayList;public class Test {public static void main(String[] args) {// 目标:认识泛型ArrayList list = new ArrayList();list.add("a");list.add(123);list.add("黑马");Cat a = new Cat();list.add(a);for (int i = 0; i < list.size(); i++) {String res = (String) list.get(i);   // 强转System.out.println(res);}}
}

强制类型转换会导致类型转换异常:

使用泛型类型为String类型,现在我给的是Cat对象,所以报错。 

package cn.ensource.d8_generics;import java.util.ArrayList;public class Test {public static void main(String[] args) {// 目标:认识泛型
//        ArrayList list = new ArrayList();
//        list.add("a");
//        list.add(123);
//        list.add("黑马");
//        Cat a = new Cat();
//        list.add(a);
//
//        for (int i = 0; i < list.size(); i++) {
//            String res = (String) list.get(i);   // 强转
//            System.out.println(res);
//        }System.out.println("-----------------------");ArrayList<String> list1 = new ArrayList<>();   // JDK1.7 开始,后面的数据类型可以不声明list1.add("Java1");list1.add("Java2");list1.add("Java3");list1.add("Java4");
//        list1.add(new Cat());for (int i = 0; i < list1.size(); i++) {String res = list1.get(i);System.out.println(res);}}
}

作用:泛型提供了在编译阶段约束所能操作的数据类型,并自动进行检查的能力!这样可以避免强制类型转换,及其可能出现的异常。

泛型的本质:把具体的数据类型作为参数传给类型变量。

自定义泛型类:这就是C++的template

package cn.ensource.d9_generics_class;// 泛型类的定义
public class MyArrayList<E> {Object[] obj = new Object[10];private int size;public boolean add(E e) {arr[size++] = e;return true;}public E get(int index) {return (E) obj[index];}
}

多个类型变量:

package cn.ensource.d9_generics_class;public class MyArrayList2<E, T> {public void put(E e, T t) {}}

有继承约束关系的类型变量,后面只能定义Animal及其子类类型。

package cn.ensource.d9_generics_class;public class MyClass3<E extends  Animal> {}

泛型接口:

Student类:

package cn.ensource.d10_generics_interface;public class Student {
}

Teacher类:

package cn.ensource.d10_generics_interface;public class Student {
}

Data泛型接口:

package cn.ensource.d10_generics_interface;import java.util.ArrayList;public interface Data<T> {void add(T t);ArrayList<T> getByName(String name);}

TeacherData实现接口类:

package cn.ensource.d10_generics_interface;import java.util.ArrayList;public class TeacherData implements Data<Teacher> {@Overridepublic void add(Teacher teacher) {}@Overridepublic ArrayList<Teacher> getByName(String name) {return null;}
}

StudentData实现接口类:

package cn.ensource.d10_generics_interface;import java.util.ArrayList;public class StudentData implements Data<Student> {@Overridepublic void add(Student student) {}@Overridepublic ArrayList<Student> getByName(String name) {return null;}
}

测试类:

package cn.ensource.d10_generics_interface;public class Test {public static void main(String[] args) {// 目标:掌握泛型接口的定义和使用// 场景:我们的系统需要处理学生和老师的数据,保存对象数据,根据名称查询数据}
}

注意:

类型变量建议是大写的英文字母,常用的有E/T/K/V等。

http://www.yayakq.cn/news/539378/

相关文章:

  • 网站功能模块 分析商城小程序开发定制
  • 制作网站需要的服务器凡客诚品是干嘛的
  • 国外做游戏的视频网站有哪些流媒体网站建设规划 所需设备
  • 中国工商网官方网站网络服务大厅
  • 织梦做中英文网站步骤横沥网站制作招聘
  • 网站开发类长春新建高铁站
  • 网站备案加速美橙互联 网站备案
  • 网站百度排名优化合肥网络推广专员
  • 专业的菏泽网站建设公司深圳建网站公司
  • 什么网站是php网站 美化
  • 网站主体备案号嘉兴品牌网站建设
  • 建手机网站公司wordpress移动端转发分享
  • 设置自己的网站电商扶贫网站建设
  • 商城网站开发模板买的网站可做360广告联盟吗
  • 房地产网站模板库做网站需要用什么开发软件
  • 成都如何做网站淄博网站建设优化
  • 房地产网站建设案例成都设计院招聘
  • seo网站推广计划wordpress 手册插件
  • 微信小程序网站建设小图标素材永久免费手机建站
  • 网站百度权重没有数据wordpress hestia
  • 创建企业营销网站包括哪些内容神农架网站设计
  • 昌平网站建设浩森宇特无代码开发平台有哪些
  • 制作科技网站首页糖果网站是李笑来做的吗
  • 电子商务网站总体规划的内容萧山区住房和城乡建设局网站
  • 重庆做网站哪家好53建筑网官网
  • 企业形象型网站建设石家庄智能网站建设
  • 家具定制东莞网站建设网站域名代理备案
  • 发帖网站百度收率高的昆明pc网站建设
  • 17网站一起做网福田网站建设方案
  • 大淘客优惠券网站是怎么做的wordpress获取分类文件