Java 中 switch 的 McCabe 循环复杂度

2024-03-19

我使用的 switch 语句有 13 个案例,每个案例只有一行返回值。

麦凯布将其涂成红色。有没有更简单的方法来编写一个大的 switch 语句?读起来似乎并不复杂,但我不喜欢默认设置变成红色。如果其他人在我的代码上使用相同的工具并看到红色的东西,他们可能会认为我很愚蠢:-)

编辑:我将不同的 SQL 类型映射到我自己的更抽象类型,因此减少了类型总量。

case Types.TIME:
    return AbstractDataType.TIME;
case Types.TIMESTAMP:
    return AbstractDataType.TIME;
case Types.DATE:
    return AbstractDataType.TIME;
case Types.BIGINT:
    return AbstractDataType.NUMERIC;
case Types.DECIMAL:
    return AbstractDataType.NUMERIC;

等等...


您正在使用代码来表达真正的数据。只需使用枚举映射或为所有常量字典定义一次即可。这样,您只需参数化一个简单且通用的对应算法,而不是编写一个很长的 switch case。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 中 switch 的 McCabe 循环复杂度 的相关文章

  • java中的csv到pdf文件

    我正在尝试获得一个csv文件解析为pdf 到目前为止我所拥有的内容附在下面 我的问题是这段代码最终出现在 pdf 中的文件在 csv 文件的第一行被截断 我不明白为什么 附示例 本质上我想要一个没有任何操作的 csv 文件的 pdf 版本
  • 由于连接超时,无法通过 ImageIO.read(url) 获取图像

    下面的代码似乎总是失败 URL url new URL http userserve ak last fm serve 126 8636005 jpg Image img ImageIO read url System out printl
  • JTree 节点不会被直观地选择

    不知何故 我无法为我的 JTree 节点启用 选择突出显示 我正在我的项目中使用自定义单元格渲染器 这很可能导致此问题 这是完整的渲染器类代码 protected class ProfessionTreeCellRenderer exten
  • 无法加载 jar 文件的主类

    我使用 Eclipse IDE 开发了一个应用程序 创建应用程序后 我以 jar 格式导出项目 当我尝试运行此 jar 文件时 出现错误 无法加载主类 请帮忙 当您将项目导出为 jar 时 请参阅此所以问题 https stackoverf
  • Android - 除了普通 SSL 证书之外还验证自签名证书

    我有一个通过 SSL 调用 Web 服务的 Android 应用程序 在生产中 我们将拥有由受信任的 CA 签名的普通 SSL 证书 但是 我们需要能够支持自签名证书 由我们自己的 CA 签名 我已经成功实施了接受自签名证书的建议解决方案
  • spring - 强制 @Autowired 字段的 cglib 代理

    我有混合堆栈 EJB 和 Spring 为了将 Spring 自动装配到 EJB 我使用SpringBeanAutowiringInterceptor 不确定这是否会影响我遇到的问题 在尝试通过以下方式自动装配 bean 时 Scope p
  • 如何将 XMP XML 块序列化为现有的 JPEG 图像?

    我有许多 JPEG 图像 其中包含损坏的 XMP XML 块 我可以轻松修复这些块 但我不确定如何将 固定 数据写回图像文件 我目前正在使用 JAVA 但我愿意接受任何能让这项任务变得容易的事情 这是目标关于 XMP XML 的另一个问题
  • Java替换特定字符

    这是我在这个网站上的第一个问题 所以我会尽量不要成为一个十足的菜鸟 我目前正在用java 创建刽子手游戏 所以我问你的问题是我们是否被赋予了 幽灵 这个词 并将 Ghost 替换为 hiddenWord ghost length for i
  • 为什么我在 Mac 上看到“java.lang.reflect.InaccessibleObjectException: Unable to make private java.nio.DirectByteBuffer(long,int)accessibl

    我已经在工作中愉快地构建代码好几天了 但突然我的一个项目 不是全部 失败并出现此错误消息 看看下面的答案吧 我是如何修复它的 起初我用谷歌搜索 看到很多有这个问题的人正在使用 Java 16 但我认为 错误 我正在使用 Java 11 因为
  • @EnableTransactionManagement 的范围是什么?

    我试图了解正确的放置位置 EnableTransactionManagement多个 JavaConfig 上下文的情况下的注释 考虑以下场景 我在 JPAConfig java 和 AppConfig java 中有 JPA 配置以及一组
  • 参数动态时如何构建 JPQL 查询?

    我想知道是否有一个好的解决方案来构建基于过滤器的 JPQL 查询 我的查询太 富有表现力 我无法使用 Criteria 就像是 query Select from Ent if parameter null query WHERE fiel
  • 如何在java中使jpeg无损?

    有没有人可以告诉我如何使用编写 jpeg 文件losslessjava中的压缩 我使用下面的代码读取字节来编辑字节 WritableRaster raster image getRaster DataBufferByte buffer Da
  • jmap - 组织和堆操作会给 jvm 带来开销吗?

    正如标题所述 需要多少开销jmap histo and jmap heap分别带到jvm 如果一个内存敏感的 Java 进程处于OutOfMemory 例如 大约 96 的堆已满 并且无法通过 full gc 清除 其中一项操作是否有可能将
  • 在 AKKA 中,对主管调用 shutdown 是否会停止其监督的所有参与者?

    假设我有一位主管连接了 2 位演员 当我的应用程序关闭时 我想优雅地关闭这些参与者 调用supervisor shutdown 是否会停止所有参与者 还是我仍然需要手动停止我的参与者 gracias 阻止主管 https github co
  • 不兼容的类型:在 java netbeans 中对象无法转换为 String

    我试图在我的项目中使用对象数组 但出现错误 incompatible types Object cannot be converted to String 在这一行 ST1 new String emt1 emt2 emt3 emt4 现在
  • 如何在keycloak中动态编辑standalone.xml文件

    我正在尝试通过 docker 编辑standalone xml 并尝试添加 但 keycloak 正在使用它standalone xml 但我可以看到standalone xml 文件中的更改 我需要在standalone xml 文件中添
  • 如何在android sdk上使用PowerMock

    我想为我的 android 项目编写一些单元测试和仪器测试 然而 我遇到了一个困扰我一段时间的问题 我需要模拟静态方法并伪造返回值来测试项目 经过一些论坛的调查 唯一的方法是使用PowerMock来模拟静态方法 这是我的 gradle 的一
  • 从java中的字符串数组中删除空值

    java中如何从字符串数组中删除空值 String firstArray test1 test2 test4 我需要像这样没有 null 空 值的 firstArray String firstArray test1 test2 test4
  • 重写Object类的finalize()方法有什么用?

    据我所知 在java中如果我们想手动调用垃圾收集器 我们可以执行System gc 1 我们在重写的finalize 方法中做了哪些操作 2 如果我们想手动调用JVM垃圾收集器 是否需要重写finalize 方法 我们在重写的 Finali
  • MongoDB Java 驱动程序:MongoCore 驱动程序与 MongoDB 驱动程序与 MongoDB 异步驱动程序

    MongoDB Java 驱动程序有三种不同的驱动程序选项 核心驱动 MongoDB 驱动程序 MongoDB 异步驱动程序 The 驱动程序描述页面 https docs mongodb org ecosystem drivers jav

随机推荐

  • ASP.Net MVC 中静态文件的永久重定向旧路由

    我们旧的 ASP net 站点将静态图像存储在根目录的子目录中 名为 images 我们新的 ASP net MVC 站点将这些图像存储在新的布局中 内容 图片 我已经更改了网站中的所有页面以适应新的文件夹结构 但我想设置从旧静态图像到新位
  • 为什么表格比 CSS 更糟糕? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • PHP MYSQL 关联数组和表

    这是一个代码 这会从数据库动态加载所有标题部分 即表的标题 下面的代码工作正常 但该列不匹配 即标题的第一行第一列是空白的并且表格中存在错位 Code table border 1 th th table
  • 如何在特定时间和日期运行函数?

    如何在给定时间和日期运行函数 示例 我有一个函数需要在每月 12 日上午 10 点运行 如果这很重要 此页面将 24 7 运行 显然我必须与当前日期进行比较 但我不确定如何检查当前日期和时间是否匹配 Shannon 不建议使用setInte
  • 计算大负值的指数

    我想知道R中如何得到大负数的指数 例如 当我尝试时 gt exp 6400 1 0 gt exp 1200 1 0 gt exp 2000 1 0 但我需要上面表达式的值 即使它很小 我怎样才能在R中得到它 这些数字太小了 要了解您的计算机
  • 列表视图中空白区域的上下文菜单

    我有一个简单的 LinearLayout 里面有 ListView match parent宽度和高度 我需要一个上下文菜单 以便在长时间触摸列表视图中的任何位置时显示 首先 我打电话registerForContextMenu对于列表视图
  • AVPlayer 是否支持在单独的文本文件中提供隐藏式字幕?

    我的团队开发使用 AVPlayer 播放视频的 iOS 应用程序 最近我们被告知 必须允许显示所有视频的隐藏式字幕 但隐藏式字幕不会作为视频文件中的轨道出现 我们已经支持以这种方式出现的隐藏式字幕 相反 我们会将它们作为单独的文本文件获取
  • 与SSE性能相同

    我对以下循环进行了矢量化 该循环出现在我正在开发的应用程序中 void vecScl Node A Node B long val int fact round dot const for i 0 i
  • Symfony 命令中的 RenderView 用法

    如何在 symfony 命令内 而不是在控制器内 使用 this gt renderView 我对 renderView 功能很陌生 但是我必须设置什么才能在命令中使用它 预先感谢您的问候 您的命令类必须扩展ContainerAwareCo
  • 如何在 MySql 的 SQL 查询中将行折叠成逗号分隔的列表

    在 T SQL 中 将相关值连接到 SQL 查询中的逗号分隔字符串中相对简单 请参见此处 将 SELECT 的行折叠成字符串的最佳方法是什么 https stackoverflow com questions 822615 what is
  • 将目录中的所有 csv 文件导入为 pandas dfs 并将其命名为 csv 文件名

    我正在尝试编写一个脚本 将目录中的所有 csv 文件作为数据帧导入到我的工作区 每个数据帧应命名为 csv 文件 减去扩展名 csv 这是我到目前为止所拥有的 但很难理解如何为循环中的数据帧分配正确的名称 我看过建议使用的帖子exec 但这
  • 我可以使用 git-svn 并看起来像我在使用 SVN 吗?如果是的话,如何?

    我习惯了 git 并且非常喜欢它 但是我的一个客户 仍然 使用 subversion 我现在不太了解 svn 但我知道有一个 git svn 包 我知道可以使用 git 从 svn 获取存储库 但是我可以使用 git 而不是 svn 并仍然
  • 如何查看 PKCS 7 文件中签署了哪些属性?

    我有一个PKCS 7 https en wikipedia org wiki PKCS 7文件 其中包含签名数据 它成功验证 openssl smime verify in data p7s CAfile root certificate
  • 如何使用 .net 4 api 端点从 Request.Content 对象获取原始请求正文

    我正在尝试捕获原始请求数据以进行问责 并希望从 Request 对象中提取请求正文内容 我见过执行 Request InputStream 的建议 但此方法在 Request 对象上不可用 知道如何获取 Request Content 正文
  • 以最低权限运行 Heroku Postgres

    我可以通过 Web 应用程序连接到 Heroku Postgres 数据库而不会有删除表的风险吗 我正在为第三方构建一个 Heroku 应用程序 该应用程序使用 Heroku Postgres 作为后端 第三方对安全性非常敏感 因此我正在考
  • Google AppEngine - 如何为 Google AppEngine 设置默认字符集/文件编码(为 UTF-8)

    情况 我在用着AppEngine 云端点 Java https cloud google com appengine docs java endpoints 作为我的 Android 应用程序的后端服务器 在 Cron Job 中 服务器定
  • 将固定文档保存到 XPS 文件会导致内存泄漏

    我创建了一个 NET Windows 服务 它执行某些操作并生成报告 这些报告是我保存在某个目录中的XPS文档 熟悉 WPF 我选择创建报告的方式是实例化一个System Windows Documents FixedDocument 添加
  • Spring Data Rest:如何使用自定义 Converter 注册自定义 conversionService?

    有一点还不够明确这部分 http docs spring io spring data rest docs current reference html customizing the representationSpring Data R
  • 在 Windows 设备中捕获屏幕上的触摸输入

    有什么方法可以捕获 Windows 设备中屏幕 应用程序框架之外 上的触摸输入 我正在开发 WPF 应用程序 并且可以检索仅发生在应用程序框架内的触摸输入 另外 有没有办法即使在应用程序最小化时也可以注册触摸输入 WPF 框架没有内置方法可
  • Java 中 switch 的 McCabe 循环复杂度

    我使用的 switch 语句有 13 个案例 每个案例只有一行返回值 麦凯布将其涂成红色 有没有更简单的方法来编写一个大的 switch 语句 读起来似乎并不复杂 但我不喜欢默认设置变成红色 如果其他人在我的代码上使用相同的工具并看到红色的