`
yangyangmyself
  • 浏览: 233851 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Java泛型

    博客分类:
  • Java
阅读更多
     Java泛型是JDK1.5中添加的支持的,所以在JDK1.5之前的版本是没有些功能。泛型就是在对象建立时不指明类中属性的具体类型,而是由外部在声明及实例化对象时指定类型。泛型可以解决数据类型安全性问题。


一、泛型基本应用

    泛弄定义:

   
    【访问权限】 class 类名称<泛型类型标识1,泛型类型标识2..>{
     
        【访问权限】 泛型类型标识符 变量名称;
        
        【访问权限】 泛型类型标识符 方法名称(){  };
   
        【访问权限】返回值类型声明 方法名称(泛型类型标识符 变量名称){  };

     }

     类名称<具体类> 对象名称 = new 类型名称<具体类>();
    


    
      class Point<T>{
        
        private T name ;

        public T getName(){
          
           return this.name;
        }
        public void setName(T name){

           this.name = name;
        }

      }
       public class Test1{

         public static void main(String args[]){
            Point<Integer> p = new Point<Integer>();
            p.setName(24);
            System.out.println(p.getName()); //输出 24
         }

      }

       public class Test2{

         public static void main(String args[]){
            Point<String> p = new Point<String>();
            p.setName("ITeye");
            System.out.println(p.getName()); //输出"ITeye"
         }       
      }

     

    
引用
泛型类中具体类,不能指定其基本数据类型,必须设置成类,加入泛型避免了类转化异常(ClassCastException)的发生,这样使程序的操作更加安全。



      构造方法应用泛型

      
       【访问权限】 构造方法(<泛型类型标识符> 变量名称){  } ;
      


      指定多个泛型类型

      

       class Point<K,v>{
        
         private K key ;
 
         private V value ;

         public K getKey(){
 
            return this.key ;
         }
         public void SetKey(K key){

            this.key = key ;
         }
         public V getValue(){

            return this.value ;
         }
         public void setValue(V value){

            this.value = value ;
         }
   
       };
       public class Test{
        
         public static void main(String args){
               
             Point<String,Integer> p = new Point<String,Integer>();
             p.setKey("ITeye") ;
             p.setValue(40) ;
             System.out.println(p.getKey()+"--"+p.getValue());
         }
       } 
      


     
引用

       在实例化对象时,如不指定类型,这样使用此类时,就会在编译时出现不安全的警告信息,但是并不会影响程序的运行。如没有指定类型,则统一使用Object进行接收。
     

    

      二、通配符

       在开发中对象引用传递是最常见,多态表现在最明显;但是在泛型类的操作中,在进行引用传递时泛型类型必须匹配才可以传递,否则无法传递。例如下面例子,编译出错。尽管String是Object类的子类,但是引用传递同样无法进行传递。虽然你可以直接将Info<Object>修改为Info,程序可以正常使用,但这样做不妥当,所以你可以引用通配符“?”

       
        public class Test{
          public static void main(String args[]){
             Info<String> info = new Info<String>() ;
             info.setTitle("ITeye");
             getInfo();
          }
          public static void getInfo(Info<Object> temp){
             System.out.println("标题:" + temp);
          }
        }
       


       修改为:
       
        public class Test{
          public static void main(String args[]){
             Info<String> info = new Info<String>() ;
             info.setTitle("ITeye");
             getInfo();
          }
          //Info<?>可以表示任意的泛型对象
          public static void getInfo(Info<?> temp){
             System.out.println("标题:" + temp);
          }
        }
       

       
       注意:使用通配符不能用于接收泛型对象,如:

       
        Info<?> info = new Info<String>();  //错误
       

       
       

       三、泛型受限


       待续...



1
1
分享到:
评论

相关推荐

    Java泛型的用法及T.class的获取过程解析

    Java泛型的用法及T.class的获取过程解析 Java泛型是Java编程语言中的一种重要特性,它允许开发者在编写代码时指定类型参数,从而提高代码的灵活性和可读性。本文将详细介绍Java泛型的用法 及T.class的获取过程解析...

    Java泛型三篇文章,让你彻底理解泛型(super ,extend等区别)

    Java 泛型详解 Java 泛型是 Java SE 5.0 中引入的一项特征,它允许程序员在编译时检查类型安全,从而减少了 runtime 错误的可能性。泛型的主要优点是可以Reusable Code,让程序员编写更加灵活和可维护的代码。 ...

    Java泛型应用实例

    Java泛型是Java编程语言中的一个强大特性,它允许我们在定义类、接口和方法时指定类型参数,从而实现代码的重用和类型安全。在Java泛型应用实例中,我们可以看到泛型如何帮助我们提高代码的灵活性和效率,减少运行时...

    很好的Java泛型的总结

    Java泛型机制详解 Java泛型是Java语言中的一种机制,用于在编译期检查类型安全。Java泛型的出现解决了Java早期版本中类型安全检查的缺陷。Java泛型的好处是可以在编译期检查类型安全,避免了运行时的...

    java 泛型类的类型识别示例

    综上所述,虽然Java泛型在编译后会进行类型擦除,但通过上述技巧,我们仍然能够在运行时获得关于泛型类实例化类型的一些信息。在实际开发中,这些方法可以帮助我们编写更加灵活和安全的代码。在示例文件`GenericRTTI...

    java泛型技术之发展

    Java泛型是Java编程语言中的一个关键特性,它在2004年随着Java SE 5.0的发布而引入,极大地增强了代码的类型安全性和重用性。本篇文章将深入探讨Java泛型的发展历程、核心概念以及其在实际开发中的应用。 1. **发展...

    SUN公司Java泛型编程文档

    Java泛型是Java编程语言中的一个关键特性,它在2004年随着JDK 5.0的发布被引入。这个特性极大地提高了代码的类型安全性和可读性,减少了在运行时出现ClassCastException的可能性。SUN公司的Java泛型编程文档,包括...

    java 泛型接口示例

    下面我们将详细探讨Java泛型接口的相关知识点。 1. **泛型接口的定义** 泛型接口的定义方式与普通接口类似,只是在接口名之后添加了尖括号`&lt;T&gt;`,其中`T`是一个类型参数,代表某种未知的数据类型。例如: ```java...

    java 泛型方法使用示例

    下面我们将深入探讨Java泛型方法的概念、语法以及使用示例。 **一、泛型方法概念** 泛型方法是一种具有类型参数的方法,这些类型参数可以在方法声明时指定,并在方法体内部使用。与类的泛型类似,它们提供了编译时...

    Java 泛型擦除后的三种补救方法

    Java 泛型是一种强大的工具,它允许我们在编程时指定变量的类型,提供了编译时的类型安全。然而,Java 的泛型在运行时是被擦除的,这意味着在运行时刻,所有的泛型类型信息都会丢失,无法直接用来创建对象或进行类型...

    java泛型的内部原理及更深应用

    Java泛型是Java编程语言中的一个强大特性,它允许在定义类、接口和方法时使用类型参数,从而实现参数化类型。这使得代码更加安全、可读性更强,并且能够减少类型转换的必要。在“java泛型的内部原理及更深应用”这个...

    JAVA泛型加减乘除

    这是一个使用JAVA实现的泛型编程,分为两部分,第一部分创建泛型类,并实例化泛型对象,得出相加结果。 第二部分用户自行输入0--4,选择要进行的加减乘除运算或退出,再输入要进行运算的两个数,并返回运算结果及...

    java泛型学习ppt

    "Java 泛型学习" Java 泛型是 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。泛型的主要目标是提高 Java 程序的类型安全。通过知道使用泛型定义的变量的类型限制,编译器可以在一个高得多的...

    Java泛型使用详细分析.pdf

    Java 泛型使用详细分析 Java 泛型是 Java 语言中的一种类型系统特性,允许开发者在编译期检查类型安全,以避免在运行时出现类型相关的错误。在本文中,我们将详细介绍 Java 泛型的使用方法和实现原理。 一、泛型的...

    Java泛型技术之发展.pdf

    Java泛型是Java编程语言中的一个关键特性,它在2004年随着Java SE 5.0的发布而引入,极大地增强了代码的类型安全性和重用性。本篇文章将深入探讨Java泛型的发展历程、核心概念以及其在实际开发中的应用。 1. **发展...

    Java泛型类型擦除后的补偿

    本文将深入探讨Java泛型类型擦除的概念,并介绍在类型擦除后,为了保持泛型的安全性和便利性,Java设计者所采取的一些补偿机制。 1. **类型擦除**: - 在编译期间,所有的泛型类型信息都会被替换为它们的实际类型...

Global site tag (gtag.js) - Google Analytics