泛型练习2

来源:互联网 发布:php倒着做乘法表 编辑:程序博客网 时间:2024/04/29 06:54
package test.arithmetic;public class Arithmetic1 {/** * @param args */public static void main(String[] args) {Point<String> p=new Point<String>();p.setX("180度");p.setY("30度");print(p);print1(p);//print2(p);//编译未通过print3(p);print4(p);print5(p);/**public static <T> void print(Point<T> p)x坐标:180度  y坐标:30度  类型:class java.lang.Stringx坐标:120度  y坐标:30度  类型:class java.lang.Stringpublic static void print1(Point<?> p)x坐标:120度  y坐标:30度  类型:class java.lang.Stringpublic static void print3(Point<String> p)x坐标:120度  y坐标:30度  类型:class java.lang.Stringx坐标:120度  y坐标:20度  类型:class java.lang.Stringpublic static void print4(Point<? extends String> p)x坐标:120度  y坐标:20度  类型:class java.lang.Stringpublic static void print5(Point<? super String> p)x坐标:120度  y坐标:20度  类型:class java.lang.Stringx坐标:120度  y坐标:11度  类型:class java.lang.String */}public static <T> void print(Point<T> p){System.out.println("public static <T> void print(Point<T> p)");System.out.println("\t" +p);p.setX((T) "120度");//警告System.out.println("\t" +p);}public static void print1(Point<?> p){System.out.println("public static void print1(Point<?> p)");System.out.println("\t" +p);//p.setY("20度");// 编译未通过}public static void print2(Point<Object> p){System.out.println("public static void print2(Point<Object> p)");System.out.println("\t" +p);p.setY("20度");// 编译未通过System.out.println("\t" +p);}public static void print3(Point<String> p){System.out.println("public static void print3(Point<String> p)");System.out.println("\t" +p);p.setY("20度");System.out.println("\t" +p);}public static void print4(Point<? extends String> p){System.out.println("public static void print4(Point<? extends String> p)");System.out.println("\t" +p);//p.setY("20度");// 编译未通过}public static void print5(Point<? super String> p){System.out.println("public static void print5(Point<? super String> p)");System.out.println("\t" +p);p.setY("11度");System.out.println("\t" +p);}}class Point<T>{private T x;private T y;public T getX() {return x;}public void setX(T x) {this.x = x;}public T getY() {return y;}public void setY(T y) {this.y = y;}@Overridepublic String toString() {return "x坐标:"+x+" \t y坐标:"+y+" \t 类型:"+x.getClass();}}

0 0
原创粉丝点击