泛型类、泛型方法、类型通配符的使用
发布日期:2021-05-09 09:36:46 浏览次数:21 分类:博客文章

本文共 7199 字,大约阅读时间需要 23 分钟。

                                           ���������������������������������������������������

���.���������

       ������������������������������������������������������������������������������������������������������������

       ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

������������������������������������������������������:

1 public class Box
{ 2 3 private T t; 4 5 public void add(T t) { 6 this.t = t; 7 } 8 9 public T get() {10 return t;11 }12 13 public static void main(String[] args) {14 Box
integerBox = new Box
();15 Box
stringBox = new Box
();16 17 integerBox.add(new Integer(10));18 stringBox.add(new String("������������"));19 20 System.out.printf("������������ :%d\n\n", integerBox.get());21 System.out.printf("������������ :%s\n", stringBox.get());22 }23 }

������������������������������������������������

������������ :10������������ :������������

������

���.������������

       ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

���������������������������������������

  • ���������������������������������������������������������������������������������������������������������������������������������������������������������������������<E>������
  • ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
  • ���������������������������������������������������������������������������������������������������������������������
  • ���������������������������������������������������������������������������������������������������������������������������int,double,char���������

 

1 public class GenericMethodTest 2 { 3    // ������������ printArray                          4    public static < E > void printArray( E[] inputArray ) 5    { 6       // ������������������             7          for ( E element : inputArray ){         8             System.out.printf( "%s ", element ); 9          }10          System.out.println();11     }12  13     public static void main( String args[] )14     {15         // ��������������������������� Integer, Double ��� Character16         Integer[] intArray = { 1, 2, 3, 4, 5 };17         Double[] doubleArray = { 1.1, 2.2, 3.3, 4.4 };18         Character[] charArray = { 'H', 'E', 'L', 'L', 'O' };19  20         System.out.println( "���������������������:" );21         printArray( intArray  ); // ������������������������22  23         System.out.println( "\n���������������������������:" );24         printArray( doubleArray ); // ������������������������������25  26         System.out.println( "\n������������������������:" );27         printArray( charArray ); // ���������������������������28     } 29 }

������������������������������������������������

���������������������:1 2 3 4 5 ���������������������������:1.1 2.2 3.3 4.4 ������������������������:H E L L O

������

���������������������:

        ������������������������������������������������������������������������������������������������������������������������������������������������������������Number������Number���������������������������������������������������������

        ���������������������������������������������������������������������������������extends���������������������������������������

 

������������������������"extends"���������������������������������������"extends"���������������"implements"������������������������������������������������������������������������������������

1 public class MaximumTest 2 { 3    // ��������������������������������� 4    public static 
> T maximum(T x, T y, T z) 5 { 6 T max = x; // ������x������������������ 7 if ( y.compareTo( max ) > 0 ){ 8 max = y; //y ������ 9 }10 if ( z.compareTo( max ) > 0 ){11 max = z; // ������ z ������ 12 }13 return max; // ������������������14 }15 public static void main( String args[] )16 {17 System.out.printf( "%d, %d ��� %d ������������������ %d\n\n",18 3, 4, 5, maximum( 3, 4, 5 ) );19 20 System.out.printf( "%.1f, %.1f ��� %.1f ������������������ %.1f\n\n",21 6.6, 8.8, 7.7, maximum( 6.6, 8.8, 7.7 ) );22 23 System.out.printf( "%s, %s ��� %s ������������������ %s\n","pear",24 "apple", "orange", maximum( "pear", "apple", "orange" ) );25 }26 }

������������������������������������������������

3, 4 ��� 5 ������������������ 56.6, 8.8 ��� 7.7 ������������������ 8.8pear, apple ��� orange ������������������ pear

������

 

���.���������������

1���������������������������������?������������������������������������ List<?> ���������������List<String>,List<Integer> ���������List<������������������>������������

1 import java.util.*; 2   3 public class GenericTest { 4       5     public static void main(String[] args) { 6         List
name = new ArrayList
(); 7 List
age = new ArrayList
(); 8 List
number = new ArrayList
(); 9 10 name.add("icon");11 age.add(18);12 number.add(314);13 14 getData(name);15 getData(age);16 getData(number);17 18 }19 20 public static void getData(List
data) {21 System.out.println("data :" + data.get(0));22 }23 }

������������������

data :icondata :18data :314

��������������� ������getData()������������������List������������������name���age���number������������������������������������������������������������������

 

2������������������������������������List������������������������������������������������������Number���������������������������

1 import java.util.*; 2   3 public class GenericTest { 4       5     public static void main(String[] args) { 6         List
name = new ArrayList
(); 7 List
age = new ArrayList
(); 8 List
number = new ArrayList
(); 9 10 name.add("icon");11 age.add(18);12 number.add(314);13 14 //getUperNumber(name);//115 getUperNumber(age);//216 getUperNumber(number);//317 18 }19 20 public static void getData(List
data) {21 System.out.println("data :" + data.get(0));22 }23 24 public static void getUperNumber(List
data) {25 System.out.println("data :" + data.get(0));26 }27 }

���������������

data :18data :314

��������������� ���(//1)���������������������������getUperNumber()������������������������������������������������������Number������������������String���������������������������������������������

 

3������������������������������������ List<? super Number>������������������������������������Number������������������������������Objec������������������

 

上一篇:数组排序
下一篇:数组的三种声明方式总结、多维数组的遍历、Arrays类的常用方法总结

发表评论

最新留言

感谢大佬
[***.8.128.20]2025年04月22日 23时32分06秒