背景:我们当前正在正常使用的项目,用maven进行重构。
问题:用maven的命令编译时,报错!具体如下:
分析:在我对应的controller位置,代码如下:
(DefectActivityTypeEnum) StringUtils.transformStringToEnum(DefectActivityTypeEnum.class, operateType));
这样以前能正常使用,现在就不应该存在问题,所以问题很有可能是出在工具类StringUtils的对应方法里。
下面我们就去看看方法里
public static Enum<?> transformStringToEnum(Class<?> cls,String str){ return (Enum<?>) Enum.valueOf(cls, str); }
返回的是Enum<?>, 在看看java.lang.Enum类的valueOf()方法里返回的是什么,
public static <T extends Enum<T>> T valueOf(Class<T> enumType,String name) { T result = enumType.enumConstantDirectory().get(name); if (result != null) return result; if (name == null) throw new NullPointerException("Name is null"); throw new IllegalArgumentException( "No enum const " + enumType +"." + name); }
哦,返回的是 <T extends Enum<T>> T 虽然和Enum<?> 同样都是限定返回值是枚举,但是Enum<T>,限定了返回值只能是和后面valueOf()里的参数T 同一个类型,而 ?则无限定,包括null,这就导致了maven这种强编译型的编译条件会报错!
修改结果:将StringUtils里的功能函数改为以下代码:
public static <T extends Enum<T>> T transformStringToEnum(Class<T> cls,String str){ return Enum.valueOf(cls, str); }
问题解决了,特此记录,以防自己再犯类似错误,要养成常看api的习惯,不能想当然的写代码!
勉之!
相关推荐
在 IDEA 中使用 Maven 的异常解决方案是指在使用 IDEA 集成 Maven 插件进行开发时可能出现的一些问题,以及解决这些问题的方法。下面是解决问题的详细步骤: 1. 确保 IDEA 中正确的引用了 Maven 和 Maven 本地仓库...
本篇将详细介绍如何利用Maven和SpringMVC来实现统一的异常处理机制。 首先,我们需要理解什么是统一异常处理。在Web应用中,异常处理通常是分散在各个控制器方法中的,这使得代码复用性差,且不易维护。统一异常...
本文总结了在Idea2019中导入Maven项目时的一些常见问题和解决方法。 问题一:Maven版本不兼容 解决方法:下载Maven 3.6.1以前的版本,或者使用官网提供的链接下载。 问题二:设置Maven的Setting.xml文件 解决方法...
本文将详细介绍如何将一个Maven项目转换为Eclipse中的Web项目,并解释Maven的基本目录架构。 首先,让我们了解Maven项目的基本结构。一个标准的Maven项目通常包含以下几个关键目录: 1. `src/main/java`:这是存放...
然而,开发者在使用IntelliJ IDEA(简称Idea)导入Maven项目时,可能会遇到“Unable to import Maven project”的错误提示,这会阻碍项目的正常启动和开发工作。本文将详细解释这个问题的原因,并提供解决方案。 ...
eclipse 中编译、运行都正常,但是如果用maven的打包命令 mvn clean package 进行打包时会发现有类型错误
### Maven内存溢出解决方案 #### 一、引言 在使用Maven进行项目构建时,尤其是在处理大型项目或执行资源密集型任务(如`mvn site`)时,经常会遇到Java堆空间溢出的问题。这类问题通常是由于Maven运行所需的内存...
Maven发布Jar包中文乱码解决方法 Maven 是一个基于项目对象模型(Project Object Model,POM)的项目管理工具,广泛应用于 Java 项目的构建、测试和打包。然而,在使用 Maven 发布 Jar 包时,ometimes 中文字符会...
在这个“springboot整合thymeleaf+maven实现异常处理页面”的案例中,我们将探讨如何在 SpringBoot 应用中整合 Thymeleaf 和 Maven,以及如何设置自定义的全局异常处理机制,使得当应用程序出现异常时,能够优雅地将...
两种方法都可以解决eclipse更新maven时,jdk版本改变的问题,但博主推荐第二种方式,减少改动量。 在eclipse中新建了一个Maven工程,然后更改JDK版本为1.7,结果每次使用Maven > Update project时JDK版本都恢复成...
在开发Java项目时,Maven是一个非常重要的构建工具,它帮助我们管理依赖、构建项目以及自动化测试。然而,有时候在使用Maven进行打包操作时,可能会遇到各种问题。本篇文章将详细阐述如何解决Maven打包出错的问题,...
转换基于Maven的Web应用程序支持Eclipse IDE 使用Maven模板创建项目 使用Maven构建项目 使用Maven清理项目 使用Maven运行单元测试 将项目安装到Maven本地资源库 生成基于Maven的项目文档站点 使用“mvn site-deploy...
本文将详细讲解如何解决"Updating Maven Project"时出现的异常,提供一种统一的解决方案。 异常情况: 1. "An internal error occurred during: 'Updating Maven Project'.",错误信息为:"Unsupported ...
依赖冲突通常发生在两个或更多库使用相同类的不同版本时,Maven默认会选择最高版本的依赖,但这可能导致运行时错误或不兼容性。在本案例中,公司需要使用一个第三方接口的加密jar包,该jar包内部依赖的高版本与现有...
maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装...
** Maven 概述** Maven 是一个强大的项目管理和构建工具,广泛应用于Java开发领域。它通过使用一个统一的构建过程,简化了项目的构建、依赖管理以及文档生成等任务。Maven 3.5.2是Maven的一个稳定版本,包含了众多...
maven仓库清理命令
在Eclipse JEE环境下,创建一个Maven项目并将其转换为Dynamic Web Project是开发Java Web应用程序的常见步骤。Maven是一种强大的项目管理工具,而Dynamic Web Project则是Eclipse中的一个特殊项目类型,专用于Web...
eclipse新建maven项目时,pom.xml文件第一行报错: org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.maven.project.MavenProject, org.apache.maven.archiver.MavenArchiveConfiguration) 解决...