泛型类和泛型方法示例

来源:互联网 发布:纵横家 知大局 编辑:程序博客网 时间:2024/06/05 11:12

1.泛型类

Couple.java

package lgw.sample;//泛型类示例public class Couple<T> {private T wife;private T husband;public Couple(T wife, T husband) {this.wife = wife;this.husband = husband;}public T getWife() {return wife;}public void setWife(T wife) {this.wife = wife;}public T getHusband() {return husband;}public void setHusband(T husband) {this.husband = husband;}}
Person.java

package lgw.model;public class Person {private String name;public Person(String name) {this.name = name;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return "Person [name=" + name + "]";}}
Test.java

package lgw;import lgw.model.Person;import lgw.sample.Couple;/* * 泛型类的使用 * 本Test测试的是定义的泛型类Couple,泛型参数是Person类 */public class Test {public static void main(String args[]) {Couple<Person> couple = new Couple<Person>(new Person("mary"), new Person("tom"));Person person1 = couple.getHusband(); //person1是丈夫Person person2 = couple.getWife(); //person2是老婆System.out.println(person1);System.out.println(person2);}}
输出结果:

Person [name=tom]
Person [name=mary]

2.泛型方法

GenericMethod.java

package lgw.sample;//泛型方法示例public class GenericMethod {public static <T> T getFirstValue(T[] values) {return values[0];}}
Test2.java

package lgw;import lgw.sample.GenericMethod;public class Test2 {public static void main(String[] args) {String[] values = {"JavaSE", "CoreJava", "EffectiveJava"};//当我们将String[]类型的实参values传递给方法时编译器就知道了泛型参数是String,因此方法前的<Stirng>可以省略//String firstValue = GenericMethod.<String>getFirstValue(values);String firstValue = GenericMethod.getFirstValue(values);System.out.println(firstValue);}}

附:


0 0