java - 使用对象初始化重构开关

标签 java groovy refactoring

我正在尝试用这种 switch 表达式重构一些(java)代码:

protected Type soSomething(Object param1, Object param2, Object param3) {
   switch (param1) {
      case A: 
         return new TypeA(param1, param2, param3);
      case B: 
         return new TypeB(param1, param2, param3);
      .......
   .... 
...

通常,我使用字典来进行这种重构

Map map = [
   A : valueA
   B : valueB
   .... 
]



return map[param1]

我的问题是我需要一个新的类型实例。 有什么想法吗?

最佳答案

我的建议是按照您的 map 想法,但将类型存储为值:

 Map map = [
   A : TypeA,
   B : TypeB,
   .... 
]

然后你可以很容易地做到这一点:

return map[param1].newInstance(param1, param2, param3)

关于java - 使用对象初始化重构开关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32568958/

相关文章:

java - 为什么内容没有出现?但是调整框架的时候就会出现

java - Mastermind 博弈算法

java - 我可以从纯 Java 使用 AWS Cognito 进行身份验证吗?

refactoring - 通过编译错误进行重构很糟糕吗?

java - 在 Kotlin 中将映射转换为对象

groovy - 列出 Canonical 和 TupleConstructor 生成的 Groovy 构造函数

java - 用于在 Java 中 pretty-print 时间段的库,仅提供最重要的字段

grails - 如何检查params中是否存在参数?

c# - 重构静态类以将其接口(interface)与实现分离

java - 用于识别 (JAVA) 代码内聚 block 的工具