`

JAVA核心三(泛型)

    博客分类:
  • JAVA
 
阅读更多

泛型的主要目的之一就是用来指定容器要持有什么类型的对象,而且有编译器来保证类型的正确性(不在运行时才检查出来)

 

可以暂时不指定类型,而是稍后再决定具体使用什么类型,可以使用类型参数,用尖括号括住,放在类名后面。然后在使用这个类的时候,再用实际的类型替代此类型参数。T就是类型参数。

 

一、泛型类<T>

在定义一个类时,后面使用<T>

 

在构造方法中,使用泛型

class Con<T>{

     private T value;

     public Con(T value){

           this.value = value;

     }

}

 

指定多个泛型

Class Gen<K,V>{

      private K key;

      private V value;

      

      public T getKey(){

           return key;

      } 

 

      public void setKey(K key){

           this.key = key;

      }

 

      public T getValue(){

           return value;

      } 

 

      public void setValue(value){

           this.valuevalue;

      }

}

 

 

 

二、泛型接口

接口使用泛型,与类使用泛型一样

interface GenInter<T>{

       public void say();

}

 

class Gin<T> implements GenInter<T>{

       private T info;

       

       @Override

       public void say(){

       

       }

}

 

public class GrenericDemo05{

        public static void main(String[] args){

                  Gin<String> g = new   Gin<String>();

         } 

}

 

三、泛型方法:使得该方法能够独立于类而产生变化。

使用原则:尽量使用泛型方法,如果泛型方法可以取代将整个类泛型化,那么就应该只使用泛型方法。

对于static的方法,无法访问泛型类的类型参数,如果static方法需要使用泛型能力,就必须使其成为泛型方法。

定义泛型方法:只需将泛型参数列表置于返回值

例如:

class Gener{

           public <T> T tell(T t){

                return t;

           }

}

 

public class GenericDemo{

         public static void main(String[] args){

                  Gener g = new Gener();

                  String str = g.tell("abc");   

         }

}

 

 

 

四、匿名内部类:泛型可以应用于内部类以及匿名内部类 

 

五、通配符

 

public class GenericDemo{

         public static void main(String[] args){

                Info<String> i = new Info<String>();

                

                Info<Integer> i = new Info<Integer>();

         }

 

         public static void tell(Info<?> i){

                  System.out.println(i)

         }

}

 

六、泛型数组

pubilc class GenericDemo{

 

          public static void main(String[] args){

                     Integer arr [] = {1,2,3,4}

                     tell(arr);

           }

 

          public static <T> void tell(T arr[]){

                

           }

}

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    java反射与泛型综合例子

    Java反射和泛型是Java编程中的两个重要特性,它们各自为开发者提供了强大的功能,并且在特定情况下可以相互结合使用。本文将深入探讨这两个概念,并通过一个具体的`Testrefl.java`示例来阐述它们的应用。 Java反射...

    java 多态的泛型实现

    在Java编程语言中,多态性是面向对象设计的核心特性之一,它允许我们使用一个接口来引用不同的对象,使得代码更加灵活和可扩展。而泛型则是Java在JDK 5.0引入的一个强大特性,它允许我们在编译时检查类型安全,并且...

    Java反射、泛型和注解实战之Spring核心注入IOC的实现

    在Java编程领域,反射、泛型和注解是三个非常重要的特性,它们为代码提供了高度的灵活性和可扩展性。在本实战项目中,我们将深入探讨如何利用这些特性实现一个类似Spring框架的核心注入机制,即控制反转(Inversion ...

    java io流 xml 泛型 例子学习

    IO流在Java中是用来处理输入输出操作的核心机制。它允许程序与外部设备(如硬盘、键盘、网络等)进行数据交换。Java IO流分为字节流和字符流,又有输入流和输出流之分。字节流处理单个字节的数据,而字符流处理...

    java泛型技术之发展

    本篇文章将深入探讨Java泛型的发展历程、核心概念以及其在实际开发中的应用。 1. **发展历程** - **早期版本的局限**:在Java泛型出现之前,程序员通常使用Object作为容器类(如ArrayList、HashMap等)的默认类型...

    【java核心技术】泛型设计

    ### 三、泛型使用 1. **类型通配符**: 类型通配符`?`用于表示未知的类型。分为两种情况: - **上限通配符**:使用`? extends SomeType`表示类型参数是`SomeType`或其子类。例如,`List&lt;? extends Number&gt; list1`...

    学士后Java集合框架和泛型课后习题答案

    通过学习和练习这些内容,你可以深入理解Java集合框架的核心概念和泛型的应用,从而在编程实践中更加灵活和高效地处理数据。同时,不断的学习和实践是提升技能的关键,希望你能在Java世界中不断进步。

    java集合与泛型.pdf

    Java集合与泛型是Java编程中非常核心的概念,它们为处理数据集合提供了一套丰富的接口和类库。在Java中,集合框架主要位于java.util包中,它提供了一套性能优化、设计精良的接口和类。泛型(Generics)是Java SE 5.0...

    泛型工具类

    在现代软件开发中,泛型作为一种强大的类型安全机制,被广泛应用于各种编程语言中,尤其是Java。泛型允许开发者编写灵活且可重用的代码,同时避免了运行时类型检查错误。在Java中,泛型工具类的构建对于实现通用功能...

    实验七:Java集合与泛型

    Java集合框架是Java编程语言中用于存储和管理对象的核心组件,它包括了各种接口和类,为处理数据提供了丰富的选择。在本次实验中,我们深入学习了Java集合框架中的两个主要部分:List接口和Map接口,以及它们的主要...

    Java基础篇:泛型.pdf

    泛型的核心思想是确保类型的正确性和安全性,避免在运行时出现类型转换异常(ClassCastException)。Java泛型的一个重要应用是在集合框架中。在JDK 1.5之前,Java集合类框架使用Object作为元素类型,这意味着集合...

    java 泛型

    接下来,我们来探讨泛型的一些核心特性: 1. **类型擦除**:Java泛型在编译后会被擦除,这意味着在运行时,泛型类和非泛型类是相同的。类型参数被替换为它们的边界类型(通常是`Object`)。因此,泛型的主要优势...

    java 泛型入门 实例

    本篇文章将带你入门Java泛型,通过实例深入理解其核心概念。 1. **泛型的基本概念** - 泛型是一种允许在定义类、接口和方法时使用类型参数的机制。这使得代码可以在编译时期检查类型,避免了不必要的类型转换,并...

    Java泛型技术之发展.pdf

    本篇文章将深入探讨Java泛型的发展历程、核心概念以及其在实际开发中的应用。 1. **发展历程** Java泛型的引入是为了解决早期版本中类型转换频繁和潜在的ClassCastException问题。在Java泛型出现之前,集合框架...

    Java 理论和实践 了解泛型

    泛型的一个核心概念是类型擦除。在编译期间,Java会将泛型信息进行类型擦除,将所有类型参数替换为它们的边界类型或者Object,这被称为“擦除”。因此,泛型并不改变运行时的行为,它们的主要作用在于编译时的类型...

Global site tag (gtag.js) - Google Analytics