首页 > 编程语言 >无涯教程-Java泛型 - 有界类型

无涯教程-Java泛型 - 有界类型

时间:2023-12-27 23:32:33浏览次数:27  
标签:%. Java Max 1f 无涯 maximum max 泛型 8.8

有时您可能想限制参数的类型,如对数字进行操作的方法可能只希望接受Number或其子类的,这就是有界类型参数的用途,使用extends实现。

这个示例是泛型方法,返回三个Comparable对象中的最大对象-

public class MaximumTest {
   //确定三个 Comparable 对象中最大的一个
   
   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("Max of %d, %d and %d is %d\n\n", 
         3, 4, 5, maximum( 3, 4, 5 ));

      System.out.printf("Max of %.1f,%.1f and %.1f is %.1f\n\n",
         6.6, 8.8, 7.7, maximum( 6.6, 8.8, 7.7 ));

      System.out.printf("Max of %s, %s and %s is %s\n","pear",
         "apple", "orange", maximum("pear", "apple", "orange"));
   }
}

这将产生以下输出-

Max of 3, 4 and 5 is 5

Max of 6.6,8.8 and 7.7 is 8.8

Max of pear, apple and orange is pear

参考链接

https://www.learnfk.com/java-generics/java-generics-bounded-type.html

标签:%.,Java,Max,1f,无涯,maximum,max,泛型,8.8
From: https://blog.51cto.com/u_14033984/9004994

相关文章

  • Java定义变量容易出错的点
    在Java中,定义的数值有默认的类型(整型为int、浮点型为double),所以在定义变量的时候要注意类型的问题。例如:因为给l的值(10000000000)默认类型是int类型,所以超出了范围;修改:在给的值后面加上L,......
  • Java基础2
    1.抽象类在Java中,抽象类(AbstractClass)是一种特殊类型的类,它不能被实例化,而是用于被其他类继承。抽象类可以包含抽象方法和具体方法。以下是关于抽象类的一些关键点:定义抽象类:使用abstract关键字定义抽象类。不能实例化抽象类,即不能使用new关键字创建抽象类的......
  • 无涯教程-Java泛型 - 原始类型
    如果原始类型的类型参数在创建过程中未传递,则原始类型是通用类或接口的对象。以下示例将展示上述概念。packagecom.learnfk;publicclassGenericsTester{publicstaticvoidmain(String[]args){Box<Integer>box=newBox<Integer>();box.set......
  • 运行Java程序
    Java及环境变量:安装openjdk-8-jre-headlessls/usr/bin/java默认放在/usr/bin下,不需要额外设置PATH 提示:如果放在自定义位置,需要设置PATHexport PATH=$PATH:/opt/jdk8/bin运行Java程序:1.在Windows上开发和调试2.发布......
  • Java登陆第三十天——Cookie和Session
    会话会话就是客户端与服务器的一次交互。HTTP是一种无状态协议无状态:服务端不会记录客户端信息。有的时候,我们需要保存客户端的信息。对于登陆功能来说,保存客户端信息,可以避免客户端每访问都需要登陆一次至此,会话管理诞生。CookieCookie是一种客户端会话技术,并保存在......
  • JavaImprove--Lesson02--Object类,Objects工具类,封装类
    一.Object类Java中的Object类是所有类的超类,它是Java类层次结构的根类。这意味着所有的类都直接或间接地继承自Object类equals(Objectobj):用于比较两个对象是否相等。默认实现是比较对象的引用,但可以通过重写此方法来比较对象的内部状态。hashCode():返回对象的哈希码值,通......
  • java基础语法API之GUI图形化界面2
    一:概述在1中,已经对GUI图形化的基础知识做了个概述,2中主要以例子为载体说明。并且介绍时间监听机制二:具体说明<1>猜数字//创建窗体对象JFramejf=newJFrame();jf.setTitle("猜数字");jf.setSize(400,300);jf.set......
  • 无涯教程-Java泛型 - 参数类型
    泛型类可以具有参数化类型,其中类型参数可以替换为参数化类型。以下示例将展示上述概念。packagecom.learnfk;importjava.util.ArrayList;importjava.util.List;publicclassGenericsTester{publicstaticvoidmain(String[]args){Box<Integer,List<St......
  • Java的安装
    Ubuntu下的Java环境:1.JDK/JRE的安装2.java的环境变量3.运行普遍Java程序4.Java程序的运行脚本 1.先安装Java的软件包:JRE:openjdk-8-jre-headlessJDK: openjdk-8-jdk-headless安装命令:sudoaptinstall openjdk-8-jdk-he......
  • 无涯教程-Java泛型 - 多个类型
    泛型类可以具有多个类型参数。以下示例将展示上述概念。packagecom.learnfk;publicclassGenericsTester{publicstaticvoidmain(String[]args){Box<Integer,String>box=newBox<Integer,String>();box.add(Integer.valueOf(10),"HelloWorld")......