Mayin10 发表于 2013-5-21 10:53

浅谈Java Generics<T>

陆陆续续学了好几年Java了,到现在还是个Anfänger,只懂最最简单的入门使用 从今天开始,决定好好研究Java, 为了给自己一个Motivation, 我把学习心得发出来,希望编程爱好者能一同学习,讨论。

我决定从硬骨头开始啃,先学习Generics,
Gründung:Generics zählen zu den komplexesten Sprachkonstrukten in Java.

Generics 只支持Java 1.5 或1.5 以上的版本,在大型系统经常使用。


Generics 的Vorteile

1. 使用Generics 大大的精简了代码。 在下面的列子里Parameter 可有可无,数目和类型都没限制。

public class GenericsDemo {
       
        public <T> void testTyp(T...t){                       
                T[] aArray = t;                               
                for(int i = 0; i < aArray.length; i++){
                        System.out.println("T : "+ aArray);
                }       
        }
               
        /**
       * @param args
       */
        public static void main(String[] args) {       
                GenericsDemo aDemo = new GenericsDemo();
                aDemo.testTyp();
                               
                Double aDouble = 2.2;
                int aInt = 5;
                String aString ="Hallo";               
                aDemo.testTyp(aDouble, aInt, aString);               
        }
}

Mayin10 发表于 2013-5-21 16:24

本帖最后由 Mayin10 于 2013-5-21 16:25 编辑

2. Typprüfung des Compilers und der Laufzeitumgebung
其实Generics的主要优势在于让编译器来跟踪参数类型,执行类型校验并且转换类型:编译器保证了转换的正确性。 ClassCastException-Fehler由Maschine检验,而不用人工检查。
在大型系统中一个父类肯能给会有上百个子类,一个好的Java结构设计会让编程者避免很多的错误, 还能大大地节省Compiler的时间。


列子正在思考中........



pamagic 发表于 2013-11-7 10:59

ms Java的泛型只不过是一个占位符,在编译器里面,所以type的信息会被抹掉。。
页: [1]
查看完整版本: 浅谈Java Generics<T>