`

泛型类的自定义

阅读更多

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

采用泛型类,完成扩展。

  例如有一个学生类

   

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

 有一个老师类

 

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

 定义一个泛型类Utils<Kind>

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

  public  主类

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,编译出错
  }
}

 

分享到:
评论
2 楼 麦田的设计者 2014-10-29  
楼上真仔细,吾皇佩服。
1 楼 longhua2003 2014-10-29  
Uitls<Teacher> ut=new Utils<Teacher>();//两个泛型类,分别给定 
Uitls写错了,是Utils

相关推荐

    C++ primer 第十六章 泛型 实现自定义Queue 修改版

    "C++ primer 第十六章 泛型 实现自定义Queue 修改版"的主题主要围绕如何利用C++的模板机制来实现一个自定义的队列(Queue)容器。在实现过程中,可能会遇到模板编译错误,解决这些问题需要对C++的模板语法有深入的...

    泛型自定义数组大小

    在Java编程中,"泛型自定义数组大小"是一个重要的概念,它涉及到数据结构和算法的基础,以及面向对象编程中的类型安全。泛型是Java 5引入的一个特性,旨在提高代码的类型安全性,减少类型转换的冗余,并提供编译时的...

    c#使用 和 继承 泛型类

    在创建类的实例时,我们可以传入任何引用类型(如字符串、自定义类)或值类型(如整型、浮点型),如`MyGenericClass&lt;int&gt;`或`MyGenericClass&lt;string&gt;`。 使用泛型类,我们可以编写更加灵活且类型安全的代码。例如...

    浅谈c# 泛型类的应用

    例如,`List&lt;T&gt;`就是一个泛型类,它可以用来存储任何类型的对象,如整数、字符串或自定义类。泛型类使得开发者能够在不牺牲性能的情况下,实现类型安全的数据容器。 2. **泛型类的继承** - **继承具体类**:泛型类...

    Dart中的泛型 泛型方法 泛型类 泛型接口、库 自定义库、系统库、第三方库.zip

    泛型涉及到泛型方法、泛型类、泛型接口以及库的使用,这些概念是理解Dart中类型系统的关键部分。下面将详细阐述这些知识点。 1. **泛型方法**:泛型方法允许我们在方法签名中使用类型参数,这样方法可以处理不同...

    详解Java常用工具类—泛型

    泛型内容包括泛型作为方法参数、自定义泛型类和自定义泛型方法等。 1. 泛型作为方法参数 泛型作为方法参数可以使用通配符,例如: public void sellGoods(List&lt;? extends Goods&gt; goods) 这里的?extends Goods...

    c#自定义泛型类的实现

    闲来无事,自己研究了泛型类的简单的使用,where表示泛型约束,表示泛型类型中的参数只能是car类型,IEnumerable是一个接口,一个集合要支持FOREAch遍历,必须实现IEnumerable接口 代码如下:public class Car { ...

    Android Intent传递泛型类

    当我们需要在Activity之间传递复杂的数据结构,比如自定义的泛型类对象时,Intent就显得尤为重要。本文将深入探讨如何在Android Intent中传递泛型类。 首先,了解Intent的基本用法。Intent通常包含两个主要部分:...

    学习泛型语法1

    在本教程“学习泛型语法1”中,我们将深入探讨泛型的各个方面,包括如何定义泛型类、处理多个泛型参数、创建泛型Stack类、理解结构类泛型以及查看泛型在自定义类和接口中的应用。 首先,让我们从定义泛型类开始。...

    实例185 - 自定义泛型化数组类

    "实例185 - 自定义泛型化数组类"是一个关于如何创建和使用自定义泛型数组类的示例,这个主题将深入探讨泛型、数组以及两者的结合。 首先,我们需要理解泛型的基本概念。泛型是Java 5引入的一个重要特性,它允许我们...

    TypeScript的泛型接口 泛型类接口.zip

    例如,在开发一个数据存储库时,可以使用泛型接口来定义存储操作的通用行为,无论数据类型是字符串、数字还是自定义对象。这使得我们可以轻松地扩展到新的数据模型,而不必为每个类型都编写单独的接口。 此外,...

    泛型和泛型集合类用法

    除了使用内置的泛型集合类之外,还可以自定义泛型类。例如: ```csharp public class ItemList { private List&lt;T&gt; items = new List(); public void Add(T item) { items.Add(item); } public T Get(int ...

    简单的List泛型模拟

    "简单的List泛型模拟"这个主题就是关于如何理解和实现一个简单的泛型列表类的模拟。 泛型的基本概念: 1. 泛型是Java SE 5.0引入的新特性,主要用于增强类型安全。 2. 泛型允许在定义类、接口和方法时使用类型参数...

    链表+泛型+反射实现自定义的LinkedList集合类

    本资源通过实现一个自定义的LinkedList集合类,深入探讨了如何将链表、泛型和反射这三个关键知识点结合在一起。 首先,链表在Java中的标准实现是`java.util.LinkedList`类,它提供了添加、删除、查找等操作,支持...

    集合类泛型类

    泛型不仅限于集合类,还可以用于自定义类、方法和接口。在集合类中,泛型的主要优点体现在以下几点: 1. **类型安全**:泛型确保了插入和检索的元素类型与集合声明的类型一致,避免了强制类型转换,防止了...

    3个泛型项目源码.rar

    1. 泛型容器:例如,自定义的堆栈、队列或者优先级队列等数据结构,利用泛型可以处理任何类型的数据,提高代码的复用性。 2. 泛型算法:比如排序、查找等算法,通过泛型,可以应用于不同类型的数据,无需为每种类型...

    Jdk15泛型的实现

    自定义泛型类或算法时,开发者需要明确指定类型参数,并考虑类型之间的关系和约束。例如,可以通过通配符(如`?`)来表示未知的类型,或者使用边界(如`T extends Number`)来限定类型参数的范围。 #### 结论 JDK...

    list泛型自定义排序示例

    在.NET编程环境中,List泛型类是常用的集合类型,它提供了丰富的操作方法,包括排序功能。本示例主要探讨如何自定义排序逻辑,使特定元素优先出现在列表前面。这个过程通常涉及委托和比较器,通过定义自定义的比较...

    自定义泛型实现元素交换

    本话题主要探讨如何自定义泛型集合,并实现其中元素的交换功能。 首先,让我们从创建一个泛型集合类开始。这个类将继承自`System.Collections.Generic.List&lt;T&gt;`,因为它提供了基本的集合操作,并且是泛型的,因此...

Global site tag (gtag.js) - Google Analytics