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

重庆平台网站建设工作空间建网站

重庆平台网站建设工作,空间建网站,建设学院网站意义,郑州餐饮加盟网站建设泛型&#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/682676/

相关文章:

  • 做网站首页尺寸大小个体经营可以建设网站吗
  • 访问wap网站如今做知乎类网站怎么样
  • vue 做企业网站网站制作相关知识
  • asp.net网站开发流程及相关工具东莞地铁建设
  • 大型网站怎么做seo网站修改解析怎么做
  • cms网站群风格活泼的网站设计
  • 网站建设和网页制作网站建设付款分期付款协议
  • 免费行情网站app大全品牌网站分析
  • 网站seo优化综合服务公司哪家好给自己的网站做关键词流程
  • 个人可以做外贸网站吗自己做网站兼职
  • 自己做网站服务器要多少钱科技网站设计公司有哪些
  • 网站建设排名优化wordpress如何实现静态
  • jsp怎么做视频网站栖霞建设招标网站
  • 域名解析查询站长工具金沙集团186cc成色
  • 官方网站app最新下载金泉网做的山东黄锈石网站有哪些
  • 网站超市源码ps做网站好看的logo
  • 想找做海报的超清图片去哪个网站找外卖平台
  • linux 建立网站文山州住房和城乡建设局网站
  • 在青岛建网站详情页模板套用
  • 做暧暧网站在线观看什么是电商包括哪些
  • 云顶科技做网站的哪个网站建站速度快
  • 网站备案查询工信部官网建设网站证
  • 手机网站被禁止访问怎么打开网页塘沽网
  • 博客网站排名大全用wordpress付费网站
  • 深互动平台网站找一个网站做优化分析
  • 镇江网站建设网站制作公司做贸易 公司网站放哪里
  • h5制作哪个网站好wordpress 云播插件
  • 百度网站服务器wordpress页内跳转链接
  • 网站seo优化是什么意思移动应用开发大作业
  • 网站建设技术方面com域名