JAVA泛型解释

mac2026-05-27  1

在java中,泛型用于解决向下转型问题。泛型可以应用在,方法中,类中与接口中

JAVA在方法中的应用

package lianxi; class Num<T>{ private T number; public void setNumber(T number) { this.number=number; } public T getNumber() { return number; } @Override public String toString() { return "Num [number=" + number + "]"; } } public class Test{ public static void main(String args[]) { Num<String> num=new Num<String>(); num.setNumber("1f"); System.out.println(num.getNumber()); getString1(num); System.out.println(num.getNumber()); getString2(num); System.out.println(num.getNumber()); } public static void getString1(Num<String> num) { num.setNumber("2"); } public static void getString2(Num<? super String> num) { num.setNumber("3"); } public static void getString3(Num<? extends Object> num) { num.setNumber("3"); } }

解释:此时,若方法(getString)中的参数的泛型为<? extends 类名>时,则不可以对类内部的成员变量进行修改,只能进行访问。若不使用泛型。默认为Object ##JAVA在接口中的应用 对于泛型接口的实现方式有两种:

继续使用泛型。直接为父接口设置类型

eg:

package lianxi; interface A<T>{ public void print(); } class B implements A<String>{ @Override public void print() { // TODO Auto-generated method stub System.out.println("执行完成"); } } class C<P> implements A<P>{ //只要接口字母与类字母一样即可 @Override public void print() { // TODO Auto-generated method stub System.out.println("执行完成2"); } } public class Test{ public static void main(String args[]) { new C<Integer>().print(); } }

JAVA在类中的应用

package lianxi; class Num<T extends Number>{ private T number; public void setNumber(T number) { this.number=number; } public T getNumber() { return number; } } public class Test{ public static void main(String args[]) { Num<Float> num=new Num<Float>(); num.setNumber(1f); System.out.println(num.getNumber(

注: ?extends 类名:设置下限 ? super 类名:设置上限

最新回复(0)