java泛型学习笔记

1.泛型方法(适当处理方法调用)

泛型提供了,编译时,类型安全检测机制,

该机制,允许程序员,在编译时,检测到非法的类型。

泛型的本质是,参数化类型,也就是说,所操作的,数据类型,被指定为一个参数。

泛型方法,该方法,在调用时,可以接收,不同类型的参数。根据,传递给泛型方法的,参数类型,

编译器,适当处理,每一个,方法调用。

2.有界的类型参数:

有时候,你会想,限制,那些,被允许,传递到,一个类型参数的,类型种类,的范围。例如,一个操作数字的方法,可能,只希望接受Number,或者Number子类,的实例。这就是有界类型参数的目的。

要声明一个,有界的类型参数,首先,列出类型参数,的名称,后跟extends,关键字,最后,紧跟,它的上界。

下面的例子,演示了,"extends",如何使用,在一般意义上的意思,"extends"(类)或者"implements"(接口)。该例子中的泛型方法,返回三个,可比较对象,的最大值。

extends限定T为可比较对象

public class MaximumTest
{
   // 比较三个值并返回最大值
   public static <T extends Comparable<T>> T maximum(T x, T y, T z)
   {                     
      T max = x; // 假设x是初始最大值
      if ( y.compareTo( max ) > 0 ){
         max = y; //y 更大
      }
      if ( z.compareTo( max ) > 0 ){
         max = z; // 现在 z 更大           
      }
      return max; // 返回最大对象
   }
   public static void main( String args[] )
   {
      System.out.printf( "%d, %d 和 %d 中最大的数为 %d\n\n",
                   3, 4, 5, maximum( 3, 4, 5 ) );
 
      System.out.printf( "%.1f, %.1f 和 %.1f 中最大的数为 %.1f\n\n",
                   6.6, 8.8, 7.7, maximum( 6.6, 8.8, 7.7 ) );
 
      System.out.printf( "%s, %s 和 %s 中最大的数为 %s\n","pear",
         "apple", "orange", maximum( "pear", "apple", "orange" ) );
   }
}
复制代码

3.泛型类(适当处理类型变量)

泛型类的声明,和非泛型类的声明,类似,除了在类名后面,添加了类型参数声明部分。

和泛型方法一样,泛型类的,类型参数,声明部分,也包含一个,或多个类型参数,参数间,用逗号隔开。一个泛型参数,也被称为,一个类型变量,是用于,指定一个,泛型类型名称,的标识符。因为他们,接受一个,或多个参数,这些类,被称为,参数化的类,或参数化的类型。(V类型变量,加V v描述)

public class Box<V> {
   
  private V v;
 
  public void add(V v) {
    this.v = v;
  }
 
  public V get() {
    return v;
  }
 
  public static void main(String[] args) {
    Box<Integer> integerBox = new Box<Integer>();
    Box<String> stringBox = new Box<String>();
 
    integerBox.add(new Integer(10));
    stringBox.add(new String("菜鸟教程"));
 
    System.out.printf("整型值为 :%d\n\n", integerBox.get());
    System.out.printf("字符串为 :%s\n", stringBox.get());
  }
}
复制代码

4.类型通配符

类型通配符,使用?代替具体的,类型变量。例如 List<?> 在逻辑上是List,List 等所有List<具体类型实参>的父类。

5.文章链接

Java 泛型

转载于:https://juejin.im/post/5cdf73d8e51d4510af211253

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值