我现在有一个枚举类ExperimentType
在model里有很多类似的各种实验对象,他们都是继承某一个实验对象基类BaseExperiment,他的DAO是experimentDAO
当我做保存或者更新的时候,就得根据不同的对象来
我是这么写的
switch(ExperimentType.valueOf(experimentName)){
case a:
A a= (A)experiment;
A aNow = (A)experimentDAO.getObject(experiment.getId());
aNow.copyProperty(a);
experimentDAO.updateObject(aNow);
break;
case b:
B b= (B)experiment;
B bNow = (B)experimentDAO.getObject(experiment.getId());
bNow.copyProperty(b);
experimentDAO.updateObject(bNow);
break;
case c:
C c= (C)experiment;
C cNow = (C)experimentDAO.getObject(experiment.getId());
cNow.copyProperty(c);
experimentDAO.updateObject(cNow);
break;
...............很多类似的
}
可以发现上面的代码都是很类似的,所以我就想,能不能让他通过某种机制,如反射等,自动根据枚举里面的对象来匹配操作,动态加载不同的类对象来实例化,让他变成不用switch的这种写法,让代码更简单化,消除这种相似性
还请大家帮忙,谢谢!
分享到:
相关推荐
在使用IntelliJ IDEA(简称Idea)进行Java开发时,有时会遇到“Error:java: Compilation failed: internal java compiler error”的错误提示,这通常意味着编译过程中遇到了内部错误,可能是由于配置问题、环境问题...
4--[求助:自制画图程序].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码4--[求助:自制画图程序].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码4--[求助:自制画图程序].zip源码scratch2.0 3.0...
11--[求助:为什么只有克隆的在跑,自己不跑].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码11--[求助:为什么只有克隆的在跑,自己不跑].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码11--...
1. **基础语法**:Java的基本语法包括变量、数据类型、运算符、控制结构(如if-else,switch,for,while循环)、类与对象、封装、继承和多态等。这些小程序可能会涵盖这些基础概念,通过实际代码示例帮助初学者理解...
1. **异常处理**:Java中的异常处理是常考内容,包括`try-catch-finally`结构,以及自定义异常。考生应熟练掌握如何使用`throw`关键字抛出异常,以及何时使用`throws`声明异常。 2. **类与对象**:面向对象编程的...
5. **多线程**:Java内置了对多线程的支持,"sl"中的代码可能包含线程的创建与同步控制,如Thread类的使用、Runnable接口的实现、synchronized关键字的应用,以及线程间的通信(wait、notify、notifyAll)。...
在压缩包内的“4-求助:自制画图程序.sb2”文件,我们可以期待它包含以下知识点: 1. **Scratch基本操作**:包括如何创建角色,设置舞台背景,以及使用代码块进行编程。 2. **绘图功能**:Scratch提供了各种绘图命令...
### Java代码开发规范知识点 #### 标识符命名规范 标识符的命名是编程中的一项基础工作,它遵循一系列的规则和建议,以保证代码的可读性和可维护性。规范的标识符命名应力求统一、达意和简洁。 1. **统一性**: 在...
5. **输入/输出流**:Java的I/O流系统用于读写文件、网络通信等,了解InputStream、OutputStream、Reader、Writer等基本流类及其使用方法,能够实现数据的存取。 6. **多线程**:Java支持多线程编程,理解线程的...
scratch2源码求助:自制画图程序本资源系百度网盘分享地址
如果提供了“求助:为什么只有克隆的在跑,自己不跑.sb2”文件,那么可以通过打开这个文件,在Scratch环境中逐行检查代码并进行测试,找出问题所在。 总的来说,Scratch编程是一个很好的教育工具,可以帮助孩子理解...
3. **安全性**:Java设计了许多安全机制,防止恶意代码对系统造成破坏。 4. **健壮性**:Java有严格的类型检查和异常处理机制,提高了程序的稳定性。 5. **可移植性**:由于JVM的存在,Java程序可以跨平台运行。 6. ...
在Java开发环境中,我们经常会遇到`java.lang.NoClassDefFoundError`这个异常,这是一个运行时错误,通常发生在尝试执行一个包含对某个类的引用,但系统无法找到该类的定义时。在这个特定的问题中,错误涉及到`org....
《计算机毕业设计:Java实现的校园帮系统》是一项基于SSM框架的综合性项目资源,专为满足校园内各类需求而设计的便捷服务平台。该系统不仅适用于本科课程设计、毕业设计的需求,更是Java学习者深入理解SSM框架与校园...
普通员工模块: 普通员工登录:普通员工使用此功能登录系统。...开发语言:Java 框架:springboot,mybatis JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3
"菜鸟编写java前期的例子 java百例" 提供了一系列简单的Java代码示例,旨在帮助初学者理解和掌握Java的基础概念与语法。这些例子是学习Java编程的好起点,它们涵盖了基本的数据类型、控制结构、函数、类和对象等核心...
然而,随着技术的发展,更新的Java版本(如Java 8)通常提供了更好的稳定性和功能改进,包括打印服务。"jre-8u333-windows-i586.exe"和"jre-6u45-windows-i586.exe"是Java运行时环境(JRE)的安装文件,分别对应Java...
2. **Swing库**:Java Swing库是用于构建图形用户界面(GUI)的工具包,它包含了各种组件如JButton、JLabel、JPanel等,用于创建窗口、按钮、标签等元素。在这个扫雷游戏中,Swing被用来创建游戏面板、计时器、求助...
scratch2源码求助:为什么只有克隆的在跑,自己不跑本资源系百度网盘分享地址
3. **异常处理**:Java程序在运行时可能会抛出异常,如果没有妥善处理,会导致程序崩溃。检查是否有合适的try-catch块,或者在关键位置捕获并打印堆栈跟踪,可以帮助追踪异常来源。 4. **类与对象**:如果项目中...