泛型
来源:互联网 发布:淘宝土特产店铺简介 编辑:程序博客网 时间:2024/05/20 22:35
* B:泛型好处
* 提高安全性(将运行期的错误转换到编译期)
* 省去强转的麻烦
* C:泛型基本使用
* <>中放的必须是引用数据类型
* D:泛型使用注意事项
* 数组和泛型前后的泛型必须一致,或者后面的泛型可以省略不写(1.7的新特性菱形泛型)
泛型一般不定义成Object 没意义
*/
//demo1();
}
public static void demo1() {
ArrayList<Person> list = new ArrayList();
//list.add("a");
//list.add(100);
list.add(new Person("张三",23));
list.add(new Person("李四",24));
//list.add(true);
Iterator<Person> s = list.iterator();
while (s.hasNext()) {
//System.out.println(s.next());
Person c =s.next();//向下转型
System.out.println(c.getAge()+" "+c.getName());
//next 方法只能调用一次 调用多次就会将指针向后移动多次
}
}
泛型遍历数组
//demo1();
ArrayList<Person> list = new ArrayList<>();
list.add(new Person("李四",23));
list.add(new Person("张三",23));
list.add(new Person("王五",23));
list.add(new Person("赵六",23));
Iterator<Person> s =list.iterator();
while (s.hasNext()) {
Person c =s.next();//用person记录每个元素
System.out.println(c.getAge()+" "+c.getName());
}
}
public static void demo1() {
ArrayList<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
Iterator<String> s =list.iterator();
while (s.hasNext()) {
System.out.println(s.next());
}
}
/* A:案例演示
* 泛型的由来:通过Object转型问题引入
* 早期的Object类型可以接收任意的对象类型,但是在实际的使用中,会有类型转换的问题。也就存在这隐患,所以Java提供了泛型来解决这个安全问题。
*/
//demo1();
Tool<String> t = new Tool<>();
t.show("abc");
}
public static void demo1() {
Tool<Student> t =new Tool();//创建工具栏对象
t.setObj(new Student("张三",23));
//Worker w =(Worker)t.getObj();//向下转型
//System.out.println(w);
}
/*A:泛型接口概述
* 把泛型定义在接口上
* B:定义格式
* public interface 接口名<泛型类型>
* C:案例演示
* 泛型接口的使用*/
}
}
//第一种
interface Inter<T>{
public void show(T t);
}/*
class Demo implements Inter<String>{ //推荐第一种
public void show(String t){
System.out.println(t);
}
}
*/
//第二种
class Demo<T> implements Inter<T>{ //没有必要再实现接口的时候在自的类加泛型
public void show(T t){
System.out.println(t);
}
/* A:泛型通配符<?>
* 任意类型,如果没有明确,那么就是Object以及任意的Java类了
* B:? extends E
* 向下限定,E及其子类
* C:? super E
* 向上限定,E及其父类
*/
List<?> list =new ArrayList<String>();//当右边的泛型是不确定时可以使用?号
ArrayList<Person> list1 =new ArrayList<>();
list1.add(new Person("李四",23));
list1.add(new Person("张三",23));
list1.add(new Person("王五",23));
list1.add(new Person("赵六",23));
ArrayList<Student> list2 =new ArrayList<>();
list1.add(new Person("李四",24));
list1.add(new Person("张三",25));
list1.add(new Person("王五",26));
list1.add(new Person("赵六",27));
list1.addAll(list2);
System.out.println(list1);
}
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 修改switch的样式
- $.ajax()方法参数详解
- JAVA POI 导出excel
- 自定义可以设置最大高度的ListView
- PL/SQL(六):函数
- 泛型
- 微信小程序 限制2M的瘦身技巧与方法详解
- C# 不用添加WebService引用,调用WebService方法
- 想一个1到100之间的数,分别除以357得到3个余数,把这三个余数输入计算机,计算机会猜出你想的数
- 我叫李诗晨
- MyEclipse快捷键
- WebSocket
- 可复用的自定义BaseAdapter
- linux基础入门之groupadd命令