Unchecked assignment 错误解决办法

下面一段程序编译 return new PagingModel(); 提示警告:Unchecked assignment 

    public PagingModel<GasProductResponse> getProductList(SaleProductListVo vo) {log.info("[GasProductServiceImpl --> getProductList] - param: {}", JSON.toJSONString(vo));try {List<CodeDict> codeDictList = getRiskList();List<String> largeTypes;// 获取全部的险种if (CollectionUtils.isEmpty(codeDictList)) {largeTypes = new ArrayList<>();} else {largeTypes = codeDictList.stream().map(CodeDict::getCode).collect(Collectors.toList());}PagingModel<GasProductResponse> pages = Pages.query(vo, () -> productInfoMapper.getSaleProd(vo, largeTypes));if (pages.getTotal() == 0) {return new PagingModel();}

Java的泛型设计是为了提供编译时的类型安全。当创建一个泛型类的实例,但没有提供具体的类型参数时,编译器会给出一个警告,告诉这样做可能会导致类型安全问题。在代码中,当写return new PagingModel();时,你没有指定PagingModel应该持有的具体类型,这就是编译器警告的原因。

要解决这个问题,需要在创建PagingModel的实例时提供一个具体的类型参数。在上面的例子中,这个类型参数应该是GasProductResponse。所以,修改代码为:

return new PagingModel<GasProductResponse>(); 

又提示新的警告:

eplace the type specification in this constructor call with the diamond operator ("<>").

这个新的警告是关于Java 7及更高版本中引入的“钻石操作符”(diamond operator)。钻石操作符<>允许编译器推断泛型实例的类型参数,这样你就不需要在构造器调用中显式地重复这些参数了。

在上面的代码中,当你使用new PagingModel<GasProductResponse>(),实际上没有必要在构造器调用中指定<GasProductResponse>,因为编译器可以从方法返回类型PagingModel<GasProductResponse>推断出来。所以,编译器建议你使用钻石操作符来简化代码,如下所示:

return new PagingModel<>();

这样,编译器会自动推断出new PagingModel<>()应该是new PagingModel<GasProductResponse>()的简写。这不仅减少了代码冗余,还保持了类型安全。

警告消除。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/661756.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

three.js CSS3DRenderer、CSS3DSprite渲染HTML标签

有空的老铁关注一下我的抖音&#xff1a; 效果: <template><div><el-container><el-main><div class"box-card-left"><div id"threejs" style"border: 1px solid red;position: relative;"></div><…

python脚本扫描win系统中运行程序内存值并修改

用于修改运行中程序的内存值 #!encodingutf8import os import json import psutil import shutil import threading import ctypes import win32api import win32process from win32con import PROCESS_ALL_ACCESS class MemScan:注&#xff1a;一定要以系统管理员身份运行脚…

Kotlin 协程:用源码来理解 ‘viewModelScope‘

Kotlin 协程&#xff1a;用源码来理解 ‘viewModelScope’ Kotlin 协程是 Kotlin 语言的一大特色&#xff0c;它让异步编程变得更简单。在 Android 开发中&#xff0c;我们经常需要在后台线程执行耗时操作&#xff0c;例如网络请求或数据库查询&#xff0c;然后在主线程更新 UI…

Linux getty命令教程:管理物理或虚拟终端的利器(附案例详解和注意事项)

Linux getty命令介绍 getty&#xff0c;全称为get tty&#xff0c;是一个在主机上运行的Unix程序&#xff0c;用于管理物理或虚拟终端&#xff08;TTYs&#xff09;。当它检测到连接时&#xff0c;它会提示输入用户名并运行login程序以验证用户。 Linux getty命令适用的Linux…

微服务—RabbitMQ

目录 初识MQ 同步和异步通讯 同步通讯的优缺点 异步调用方案 异步通信优缺点 常见MQ技术对比 RabbitMQ快速入门 安装RabbitMQ RabbitMQ整体架构与相关概念 常见消息模型​编辑 入门案例 SpringAMQP 基本介绍 SpringAMQP案例——模拟HelloWorld消息模型 Sprin…

SpringCloud-搭建Eureka服务模块

在构建分布式微服务体系中&#xff0c;搭建Eureka服务模块是实现服务注册与发现的关键一步。Spring Cloud作为领先的微服务框架&#xff0c;通过Eureka为我们提供了高效的服务治理能力。本文将深入探讨如何使用Spring Cloud&#xff0c;逐步引导读者完成Eureka服务模块的搭建。…

【HarmonyOS】鸿蒙开发之ArkTs初步认识——第2.1章

ArkTs简介 ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript&#xff08;简称TS&#xff09;生态基础上做了进一步扩展&#xff0c;继承了TS的所有特性&#xff0c;是TS的超集。 以下图可以展示Js&#xff0c;TS&#xff0c;ArkTs的关系 ArkTs基础语…

C++(17)——list的模拟实现

前面的文章中&#xff0c;介绍了&#xff0c;的模拟实现&#xff0c;本篇文章将介绍对于的模拟实现。 目录 1. list的基本结构&#xff1a; 2. list功能实现&#xff1a;尾部插入元素&#xff1a; 3. list迭代器的实现&#xff1a; 4. list功能实现&#xff1a;在任意位置前…

酒店管理小程序|基于微信小程序的酒店管理系统设计与实现(源码+数据库+文档)

酒店管理小程序目录 目录 基于微信小程序的酒店管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员模块的实现 &#xff08;1&#xff09;用户信息管理 &#xff08;2&#xff09;酒店管理员管理 &#xff08;3&#xff09; 房间信息管理 2、小程序…

语义分割:从早期探索到深度学习的突破

语义分割&#xff1a;从早期探索到深度学习的突破 语义分割的端倪&#xff1a;从早期探索到深度学习的突破引言早期技术&#xff1a;图像处理与模式识别边缘检测区域生长图割(Graph Cut)聚类方法 深度学习的兴起&#xff1a;CNN革命2012年 AlexNet的突破全卷积网络&#xff08;…

【Shud】PIHMgis编译过程(上)编译GDAL详细步骤

目录 说明PIHM 部分版本说明PIHM V2.3PIHM V3.0PIHM V3.0编译步骤准备工具源代码编译工具测试环境步骤编译GDAL编译SQlite3编译CURLcmake命令行GUI

计算机网络实验一

目录 实验一 使用PacketTracer组建简单局域网 1、实验目的 2、实验设备 &#xff08;1&#xff09;内容一&#xff08;组建简单局域网&#xff09;&#xff1a; &#xff08;2&#xff09;内容二&#xff08;使用交叉线直连两台机器&#xff09;&#xff1a; &#xff08…

TerserWebpackPlugin详解

一、简单实用 注&#xff1a;此文章来自于github翻译来&#xff0c;仅供参考&#xff0c;具体配置需要结合自己的技术框架配置&#xff08;vue/react等&#xff09; npm install terser-webpack-plugin --save-devnew TerserPlugin({test: /\.js(\?.*)?$/i, //用来匹配需要…

mfc140.dll丢失的几种修复方式,有效的解决文件丢失问题

mfc140.dll是Microsoft Foundation Class (MFC)库中的一个非常重要的DLL文件。它承载了许多被执行程序使用的函数和资源。这个库主要被广泛应用于开发Windows操作系统上的应用程序。然而&#xff0c;有时候我们可能会遭遇到mfc140.dll缺失或损坏的情况&#xff0c;这会导致依赖…

Linux管道、网络管理和远程连接

这次来说一下Linux管道、网络管理与远程连接相关的一些内容&#xff0c;如下。 一、管道&#xff08;重点&#xff09; 1、管道符 用 “|”&#xff08;竖线&#xff09;表示。 作用&#xff1a;管道是一种通信机制&#xff0c;通常用于进程间的通信。它表现出来的形式将前…

DRV8313和L298N都是电机驱动,一个是驱动三相FOC无刷直流电机的,一个是驱动有刷电机,使stm32控制无刷电机简单入门知识

DRV8313和L298N都是电机驱动器&#xff0c;但它们之间存在一些关键的区别&#xff1a; DRV83131&#xff1a; 由德州仪器&#xff08;TI&#xff09;制造。 具有集成的场效应晶体管&#xff08;FET&#xff09;。 最大电压为65V。 峰值电流为3A。 适用于三相电机驱动。 L298N…

维纳过程简介

在资产价格模型中&#xff0c;我们得出了结论&#xff1a;价格对数的标准差与时间的平方根 成一定比例。因此在离散时间模型下&#xff0c;我们可以设定以下过程&#xff0c;其中&#x1d461;是相互 独立的标准正态分布变量序列 过渡到连续时间模型下&#xff0c;我们可以定义…

Java打印图形 九九乘法表

目录 双重循环九九乘法表打印长方形打印平行四边形打印三角形打印菱形打印空心菱形 三重循坏百钱买百鸡 双重循环 九九乘法表 在Java中&#xff0c;你可以使用嵌套的for循环来打印九九乘法表。以下是一个简单的示例&#xff1a; public class Main {public static void main…

代码随想录算法训练营day37 || 738. 单调递增的数字,968.监控二叉树

视频讲解&#xff1a; 贪心算法&#xff0c;思路不难想&#xff0c;但代码不好写&#xff01;LeetCode:738.单调自增的数字_哔哩哔哩_bilibili 贪心算法&#xff0c;二叉树与贪心的结合&#xff0c;有点难...... LeetCode:968.监督二叉树_哔哩哔哩_bilibili 738. 单调递增的数字…

Redis发布订阅怎么用?

命令 # 订阅频道ch1 subscribe ch1 # 发布频道ch1消息hi publish ch1 hi # 取消订阅 unsubscribe ch1 # 模式订阅。 # ?代表一个占位符、*代表任意占位符、?*代表1个以上占位符 psubscribe c? b* d?*原理 发布订阅的实现其实是通过key为频道value为储存订阅频道客户端的…