Java在进行ADT的编写可以进行泛型的使用,如在下面代码:
private CourseIntervalSet<Course> courseInterval;
public class CourseIntervalSet<L> extends CommonMultiIntervalSet<L>
public class Course {
private final String id;
private final String name;
private final String teachername;
private final String locate;
private final int hour;}
中可以对ADT进行泛型的使用。<L>是一个泛型,该泛型传递的是什么类型就会返回什么类型,T表示:返回值T是泛型,T只是一个占位符,用来告诉编译器,此处先留存,在进行编译时再将其定义。
在对泛型的使用中,泛型可以传递传统的Int、double、long、short、String等类型,此时返回的是相应的类型。
但同时泛型还可以传递已经定义过的类,进行相应的类中各自信息的操作,此时返回的也是相应的类中各信息的集合体。
显式指定方法的类型参数,类型参数要写在尖括号中并放在方法名之前。例如:object.<String> func(...),这样就显式指定了泛型方法的类型参数为String,那么所有出现类型参数T的地方都将替换成String类型。
如果你定义了一个泛型(类、接口),那么Java规定,你不能在所有的静态方法、静态初块等所有静态内容中使用泛型的类型参数。
如上述代码<L>中的泛型传递的是Course类,限定了 T的类型,此时T的类型只能是Course,此时返回的是course类中的各种信息,对该信息进行输出时,会将Course中的信息如id、name、teachername、locate、hour当做一个集合进行输出。
而在ADT的编写时,泛型定义为<T>时,表示该处放置的是泛型<T>,用于操作类对象,当将T替换成各种已知的数据类型或者个人设定的类时,该信息会进行实例化,并可以在返回时将相应的类型的数据进行传回。