泛型类的自定义

为什么要定义泛型类,当类中要操作的引用数据类型不确定的时候。

采用泛型类,完成扩展。

例如有一个学生类

Java代码  [url=][/url]

  • Student{
  • Student(){
  • System.out.println("I‘m a student.....");
  • }
  • }

有一个老师类

Java代码  [url=][/url]

  • Teacher{
  • Teacher(){
  • System.out.println("I‘m a teacher.....");
  • }
  • }

定义一个泛型类Utils<Kind>

Java代码  [url=][/url]

  • class Utils<Kind>
  • {
  • private Kind k;
  • public void setObject(Kind k){
  • this.k=k;
  • }
  • public Kind getObject(){
  • return k;
  • }
  • }

public  主类

Java代码  [url=][/url]

  • public class GenericDemo{
  • public static void main(){
  • Uitls<Teacher> ut=new Utils<Teacher>();//两个泛型类,分别给定
  • Utils<Student> us=new Utils<Student>();//Teacher类和Student类
  • ut.setObject(new Teacher());
  • Teacher teacher=ut.getObject();//编译运行都通过
  • //输出 I‘m a teacher。。。
  • us.setObject(new Student());
  • Student student=us.getObject();//编译运行都通过
  • //输出 I‘m a Student。。。
  • ut.setObject(new Student());
  • Teacher teacher=ut.getObject();//直接出现异常ClassCastException,编译出错
  • }
  • }
时间: 2024-11-24 11:44:50

泛型类的自定义的相关文章

泛型程序设计

在JDK5.0之前: public class ArrayList{ public Object get(int i){...} public void add(Object o){...} ... private Object[] elementData; } 这样实现有两问题.首先,当取得一个值的时候必须进行强制类型转换. ArrayList files = new ArrayList(); ... String filename = (String)names.get(0); 此外,这里没

java之 ------ 泛型【从基础到加强】

泛型 基础篇 一.为什么要泛型 1.原因 先看一个集合的例子(至于集合,前面有讲解,集合详解链接,不懂得可以先去看看那篇) import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.Iterator; import cn.hncu.bean.Person; public class CollectionDemo { public static void m

详解Android主流框架不可或缺的基石

自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onLayout源码详尽分析 自定义View系列教程04–Draw源码分析及其实践 自定义View系列教程05–示例分析 自定义View系列教程06–详解View的Touch事件处理 自定义View系列教程07–详解ViewGroup分发Touch事件 自定义View系列教程08–滑动冲突的产生及其处理

泛型1:介绍及基本使用方式

前言 泛型实现了参数化类型的概念; 泛型的主要目的之一是用来指定容器要持有什么类型的对象,编译器保证类型的正确性; 多态也是一种泛化机制; 基本类型无法作为类型参数: 一.基本使用方式 泛型基本分为泛型类型和泛型方法两种,泛型类型声明方式为类型参数用尖括号括住,放在类名后边,泛型方法的参数列表应该置于返回值之前.示例如下: //泛型类 package java.lang; public interface Iterable<T> { Iterator<T> iterator();

樱花未开,小白已来

虽然现在已是5月中旬,但我们这里樱花还没有开放,而我编著的<Java从小白到大牛>纸质版终于登陆各大电商了. 这本书倾注我一年时间,这也是我总结15年Java开发之经验,编著Java立体化之电子图书--<Java从小白到大牛>.所谓立体化图书包括:电子图书.视频.课件和服务等内容. 为了祝贺<Java从小白到大牛>纸质图书上市,现购买51CTO学院<Java从小白到大牛全集视频课程>http://edu.51cto.com/topic/1246.html 的

买《Kotlin从小白到大牛》专题视频课程,送配套纸质图书

经过一年多时间的呕心沥血,Kotlin立体化图书--<Kotlin从小白到大牛>即将与大家见面了.所谓立体化图书包括:电子图书.视频.课件和服务等内容. <Kotlin从小白到大牛>纸质图书将于9月上旬上市,为了答谢广大学员对智捷课堂以及关老师的支持,现购买51CTO学院视频课程<Kotlin从小白到大牛全集专题> 的学员送一本<Kotlin从小白到大牛>纸质版图书.请于购买课程后10个工作日内申请赠书,过期视为放弃. 注意:苹果支付购买,以及打折活动购买不

.net基础扫盲-自定义泛型类

C#自定义泛型类用得最广泛,就是集合(Collection)中.实际上,泛型的产生其中一个原因就是为了解决原来集合类中元素的装箱和拆箱问题(如果对装箱和拆箱概念不明,请百度搜索).由于泛型的使用,使得集合内所有元素都属于同一类,这就把类型不同的隐患消灭在编译阶段--如果类型不对,则编译错误. 这里只讨论C#自定义泛型类. 基本自定义如下: public class MyGeneric < T> { private T member; public void Method (T obj) { }

自定义泛型类,本质就是利用微软提供的集合和集合接口

//实现IEnumerable<A>接口中的GetEnumerator()方法,为了能支持foreach遍历    class MyClass<A>:IEnumerable<A>    {        List<A> list = new List<A>(); private List<A> items;        public List<A> Items        {            get { retu

C# 中自定义泛型类的示例

一.自定义泛型类 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CSharpOOP_Lesson4 { /// <summary> /// 下拉框类 /// </summary> public class CompBox<T> { public string Item