Java基础之泛型
来源:互联网 发布:编辑部的故事 知乎 编辑:程序博客网 时间:2024/06/06 21:07
import java.util.ArrayList;import java.util.List;import static java.lang.System.*;/** * Created by leo on 17-7-11. Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。 泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。 */public class GenericNote { public static void main(String[] args){ Page<String> name = new Page<>(); Page<Integer> age = new Page<>(); ArrayList<String> names = new ArrayList<>(); names.add("abc"); names.add("def"); ArrayList<Integer> ages = new ArrayList<>(); ages.add(10); ages.add(20); name.setList(names); age.setList(ages); out.println("name class:" + name.getClass());//class:class Page out.println("age class:" + age.getClass());//class:class Page out.println(name.getClass() == age.getClass());//true //调用泛型方法 Double[] doubles = {1.1, 2.2, 3.3}; printArray(doubles); // extends的使用 int max = maximum(2, 3, 1); out.println(max); //类型通配符?,?代表不可知的类,相当于具体类的父类 getData(ages); getData(names); // 实现了泛型接口的类 Counter counter = new Counter(); out.println(counter.count("abcdefghijklmn")); }// 泛型方法,<E>的存在是泛型方法定义的形式,其中E是类型的参数,意为E类型 public static <E> void printArray(E[] inputArray){ for (E e:inputArray) { out.printf("%s", e); } }// extends的使用,<T extends Comparable<T>>限定了T的类型范围。supers关键字的用法类似,含义相反而已 public static <T extends Comparable<T>> T maximum(T x, T y, T z){ T max = x; if(y.compareTo(max) > 0){ max = y; } if(z.compareTo(max) > 0){ max = z; } return max; }// 类型通配符?,?代表不可知的类,相当于具体类的父类,在list中就可以放入?的各个子类 public static void getData(List<?> data){ out.println("data : " + data.get(0)); }}// 泛型类class Page<T> { private static final int PAGESIZE = 10; private Long pageNow; private ArrayList<T> list; public Page() { pageNow=1L; } public static int getPAGESIZE() { return PAGESIZE; } public Long getPageNow() { return pageNow; } public void setPageNow(Long pageNow) { this.pageNow = pageNow; } public ArrayList<T> getList() { return list; } public void setList(ArrayList<T> list) { this.list = list; }}// 接口泛型的定义interface Count<K, V> { V count(K k);}//实现了该泛型接口的类class Counter implements Count<String, Integer>{ @Override public Integer count(String s) { return s.length(); }}
阅读全文
0 0
- Java基础之泛型
- java基础之泛型
- java泛型之基础
- Java基础之泛型
- Java基础之泛型
- Java基础之泛型
- JAVA基础之泛型
- Java之泛型基础
- java基础之泛型
- java基础之泛型
- java基础之泛型
- Java基础之泛型
- java基础之泛型
- Java基础之泛型
- Java基础之泛型
- Java基础之泛型
- Java基础之泛型
- Java基础之泛型
- jQuery:改进图像
- MyBatis的执行过程总结
- 汇编--学习笔记(五)-组织数据
- (MySql)distinct、group by去重
- Oracle ADF MenuDemo 案例
- Java基础之泛型
- 图像增强之频域增强
- Android Studio报错:Error[*,*]Could not find method android() for arguments [……]
- 设计模式say you na la
- 搜索专题 L
- HTML+CSS编写静态网站-16 使用div
- 批量数据处理存储过程模板
- 编程之美2.4 1的数目
- 浅谈redis