首页 > 编程语言 >无涯教程-Java泛型 - 上界通配符

无涯教程-Java泛型 - 上界通配符

时间:2023-12-28 11:38:44浏览次数:34  
标签:java Arrays 通配符 sum List 无涯 泛型 Java public

问号(?)代表通配符,代表泛型中的未知类型。有时您可能想限制传递给类型参数的种类。如,对数字进行操作的方法可能只希望接受Number或其子类。

要声明一个上限的通配符参数,需要使用 “?”,其次是extends关键字,然后是其上限。

以下示例说明了如何使用extends来指定上限通配符。

package com.learnfk;

import java.util.Arrays;
import java.util.List;

public class GenericsTester {

   public static double sum(List<? extends Number> numberlist) {
      double sum = 0.0;
      for (Number n : numberlist) sum += n.doubleValue();
      return sum;
   }

   public static void main(String args[]) {
      List<Integer> integerList = Arrays.asList(1, 2, 3);
      System.out.println("sum=" + sum(integerList));

      List<Double> doubleList = Arrays.asList(1.2, 2.3, 3.5);
      System.out.println("sum=" + sum(doubleList));
   }
}

这将产生以下输出 -

sum=6.0
sum=7.0

参考链接

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

标签:java,Arrays,通配符,sum,List,无涯,泛型,Java,public
From: https://blog.51cto.com/u_14033984/9011893

相关文章

  • Java中使用JTS实现WKB数据写入、转换字符串、读取
    场景Java中使用JTS实现WKT字符串读取转换线、查找LineString的list中距离最近的线、LineString做缓冲区扩展并计算点在缓冲区内的方位角:Java中使用JTS实现WKT字符串读取转换线、查找LineString的list中距离最近的线、LineString做缓冲区扩展并计算点在缓冲区内的方位角_jts工具类WK......
  • 【Java核心基础】Java中foreach方法核心总结
    Java中的foreach循环适用于多种场景:遍历数组、集合框架、处理列表数据等,可替代传统for循环,使代码更简洁。结合Lambda表达式和StreamAPI,可实现声明式数据处理,虽然不能直接遍历Map的键值对,但可遍历键或值集合,在多线程环境下,结合并行流使用foreach可并行处理数据。使用foreach能简......
  • 详解Java编写并运行spark应用程序的方法WordCount_tyt2023
    SparkContext:通往Spark集群的入口点,用于创建RDD和广播变量等RDD:弹性分布式数据集,Spark应用程序的核心抽象Transformation:操作RDD生成新的RDD,如map、filter等Action:对RDD的操作,如count、collect等 环境:SparkStandalone模式目标:计算文本文件中所有单词的出现频率输入文......
  • 2017 《Java 2实用教程(第5版)》是由耿祥义、张跃平编著
    我的研究生同学河南老乡河南工业大学Jackso_hao大学期间学习的Java教材  《Java2实用教程(第5版)》是由耿祥义、张跃平编著,2017年清华大学出版社出版的高等学校Java课程系列教材、普通高等教育“十一五”国家级规划教材。该教材既可作为高等院校相关专业Java程序设计的教材......
  • java的启动脚本
    java的启动脚本:run_java.sh脚本内容: -设置工作目录-设置必要的环境变量-设置JVM运行参数-运行程序创建运行脚本:使用run_java.sh来运行java程序1.修改run_.sh2.转成UNIX风格3.上传至Linux 4.添加+x权限,运行脚本 ......
  • 无涯教程-Java泛型 - 映射(Map)
    Java在Map接口中提供了泛型支持。GenericMap-语法Map<T>map=newHashMap<T>();map-Map接口的对象。T   -集合声明期间传递的泛型类型参数。T是传递给泛型接口Map及其实现类HashMap的类型参数。packagecom.learnfk;importjava.util.HashMap;importj......
  • java进行数据库操作的并发控制的2种方法
    本文分享自华为云社区《java进行数据库操作的并发控制》,作者:张俭。在现代应用编码中,从数据库里面find出来,进行一些业务逻辑操作,最后再save回去。即:Personperson=personRepo.findById(id);person.setAge(18);personRepo.save(person);但是这样的业务操作,如果一个线程修改......
  • java8 新特性(二)CompletableFuture类
    CompletableFuture是Java8中引入的一个新特性,它表示异步计算的结果。通过使用CompletableFuture,可以方便地处理异步计算,并能够在计算完成后执行回调函数。CompletableFuture是Java8中引入的一个功能强大的类,它实现了Future接口,并在此基础上进行了丰富的扩展,以简化异步编程的复......
  • 无涯教程-Java泛型 - 有界类型
    有时您可能想限制参数的类型,如对数字进行操作的方法可能只希望接受Number或其子类的,这就是有界类型参数的用途,使用extends实现。这个示例是泛型方法,返回三个Comparable对象中的最大对象-publicclassMaximumTest{//确定三个Comparable对象中最大的一个publics......
  • Java定义变量容易出错的点
    在Java中,定义的数值有默认的类型(整型为int、浮点型为double),所以在定义变量的时候要注意类型的问题。例如:因为给l的值(10000000000)默认类型是int类型,所以超出了范围;修改:在给的值后面加上L,......