初学泛型
来源:互联网 发布:c语言可以用else if 编辑:程序博客网 时间:2024/06/18 01:15
刚刚开始看泛型,泛型是一个容器,既然是容器,那么里面就能放任何东西,
就是任何对象。
创建一个泛型类很简单,像下面这样就是创建了一个简单的泛型类型
简单泛型
public class Holder<T> { private T a; public Holder(T a) { this.a = a; } public T getA() { return a; } public void setA(T a) { this.a = a; } public static void main(String[] args) { Holder<Automobile> Holder = new Holder<Automobile>(new Automobile()); Automobile automobile = Holder.getA(); automobile.say(); }}class Automobile { public void say(){ System.out.println("111"); }}
Holder<Automobile> Holder = new Holder<Automobile>(new Automobile());
“<>”里面可以是任意类型
多个泛型持有者
public class TestGenericFoo { public static void main(String[] args) { //可以分别以 String 和 Integer 设置 T1, T2 的真实类型 GenericFoo<String, Integer> foo = new GenericFoo<String, Integer>(); foo.setFoo1("jack"); foo.setFoo2(99);}class GenericFoo<T1, T2> { private T1 foo1; private T2 foo2; public T1 getFoo1() { return foo1; } public void setFoo1(T1 foo1) { this.foo1 = foo1; } public T2 getFoo2() { return foo2; } public void setFoo2(T2 foo2) { this.foo2 = foo2; }}
也可以用于声明数组
public class TestGenericFoo { public static void main(String[] args) { //也可以用于声明数组 String [] strArray = {"one", "two", "three"}; GenericFooArray<String> fooArray = new GenericFooArray<String>(); fooArray.setFooArray(strArray);// System.out.println(fooArray.getFooArray()[0]);}//GenericFoo 数组class GenericFooArray<T> { private T[] fooArray; public T[] getFooArray() { return fooArray; } public void setFooArray(T[] fooArray) { this.fooArray = fooArray; }}
泛型限制可用类型
public class TestGenericFoo { public static void main(String[] args) { //泛型限制可用类型,比如限制只有继承了List才可使用 ArrayList<String> arrayList = new ArrayList<String>(); arrayList.add("1"); arrayList.add("2"); //如果此处不是继承List的类会编译出错 GenericFooList<ArrayList> fooList = new GenericFooList<ArrayList>(); fooList.setFooList(arrayList); }}//泛型限制可用类型,比如限制只有继承了List才可使用class GenericFooList<T extends List> {/*GenericFooList<T extends List<String>> 这么定义的话 GenericFooList 就只能用ArrayList<String>实例化 GenericFooList<ArrayList<String>> fooList = new GenericFooList<ArrayList<String>>();用ArrayList<Integer> 会编译出错GenericFooList<ArrayList<Integer>> fooList = new GenericFooList<ArrayList<Integer>>();*/ private T fooList; public T getFooList() { return fooList; } public void setFooList(T fooList) { this.fooList = fooList; }}
0 0
- Java初学习-泛型初学习
- 初学:泛型使用
- 泛型初学
- 初学泛型编程
- 初学泛型
- C#泛型初学(一)
- 初学Java,泛型类型通配符(三十七)
- C++初学,泛型算法 一
- java_web初学笔记之<泛型基础>
- 初学...
- 初学
- 初学
- 初学
- 初学
- 初学
- 初学
- 初学
- java_web初学笔记之<泛型的类型擦除>
- 限制UITextFeild字数
- Bash测试----test, [], [[]], (())
- 面试题总结
- 网站设计的趋势
- 文章标题
- 初学泛型
- KVM虚拟机脚本自动化安装脚本1
- [Android] 6.0以上系统动态权限说明
- Xcode8 屏蔽OS_ACTIVITY_MODE log
- 关于bootstrap-table插件导出到Excel ,增加ie8导出方式
- Indexing cannot yield multiple results---Matlab问题解决
- 【23.24%】【codeforces 629C】Famil Door and Brackets
- UNDO相关问题总结(五)
- 机器学习(七)使用pandas库进行数据分析_——统计信息和离散化