public class Operate {
/**
* 使用条件 :inObj与outClass具有相同的属性
* @param inObj 包含有数据的对象
* @param outClass 需要返回对象的类型
* @return outClass类型的实例,该实例的属性值通过inObj赋值
*/
public Object getEntity(Object inObj, Class<Object> outClass) {
try {
//获取inObj的所有属性
Field[] myfield = inObj.getClass().getFields();
//创建需要返回对象的实例
Object resultObj = outClass.newInstance();
//循环调用resultObj的set方法实现对象间的赋值处理
for (int i = 0; i < myfield.length; i++) {
//获得inObj对象的属性名称,并将首字母大写
StringBuffer fieldName = toFirstUpperCase(myfield[i].getName());
//构造set方法的名字,如setXXX
StringBuffer methodName = new StringBuffer("set").append(fieldName);
//构造outClass需要使用的方法
Method m = outClass.getDeclaredMethod(methodName.toString(), myfield[i].getType());
//调用方法实现赋值
m.invoke(resultObj, myfield[i].get(inObj));
}
//返回对象
return resultObj;
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
return null;
}
/**
*
* @param str 需要处理的字符串
* @return 将str首字母大写的结果
*/
public StringBuffer toFirstUpperCase(String str) {
//获取第一个字符,并转换为大写
StringBuffer first = new StringBuffer(str.substring(0, 1).toUpperCase());
//获取其余的字符
StringBuffer back = new StringBuffer(str.substring(1, str.length()));
//合并字符串
StringBuffer result = first.append(back);
//返回结果
return result;
}
}
分享到:
相关推荐
标题 "spring 3.0日常项目用到的jar" 提供了我们正在讨论的是与Spring框架3.0版本相关的库,这些库在日常项目开发中是必不可少的。描述中提到了几个关键的模块,包括`commons-logging.jar`以及Spring框架的多个组件...
这个"学习反射的一个好实例"显然提供了一个实际应用反射的案例,这对于理解和掌握这个概念至关重要。反射通常在Java、Python、C#等面向对象的语言中被广泛使用,它能增加代码的灵活性和动态性。 反射的基本操作包括...
标题“项目中要用到的小实例”暗示了这是一个包含实用编程示例的集合,可能是为了帮助开发者在实际项目中解决问题或实现特定功能。描述中的“NULL”没有提供额外信息,但我们可以根据标签“源码”和“工具”进行推测...
总的来说,"反射泛型完美版分页.rar"提供的解决方案结合了Java的两种强大特性,旨在提供一个高效、灵活且类型安全的分页工具,对于处理大数据量的应用场景尤其有价值。不过,需要注意的是,过度使用反射可能会导致...
这个压缩包文件包含的是Nutz开发中可能会用到的一些jar包,这些库是Nutz框架正常运行所必需的或者是与其相关的工具类库。 在Java开发中,jar(Java Archive)文件是一种用于存储和分发代码的容器,它将多个类文件...
这个项目集合包含了游戏大厅和五子棋等应用,旨在通过实际操作提升编程技能,使学习者能够将理论知识转化为实际的软件开发能力。 在疯狂Java讲义中,我们学习了Java的基础语法、面向对象编程、集合框架、多线程、...
可能用到的技术有Spring Boot、WebSocket等,同时可能需要了解消息队列(MQ)如RabbitMQ或Kafka,用于高效地传递消息。 2. **11手机游戏 象棋**:游戏开发涉及到图形界面(GUI)设计,可能使用JavaFX或Swing,同时...
虽然不是直接处理JSON,但在开发过程中,记录错误和调试信息是必不可少的,这个库提供了统一的日志接口。 6. **commons-lang-2.6.jar**:Apache Commons Lang是一个包含许多实用工具方法的库,用于扩展Java语言的...
让我们深入探讨一下这个主题,可能会包括以下几个方面: 1. **基础语法**:Java的基础语法是所有Java开发者的基石,包括数据类型(如整型、浮点型、字符型、布尔型等)、变量声明、控制流(如if语句、switch语句、...
在转换Map到实体时,我们需要获取实体类的属性信息,然后根据Map中的键值对设置这些属性的值,这就需要用到反射。 下面是一个简单的工具类`CollectionTools`的示例代码,它使用泛型和反射实现了Map到实体的转换: ...
当发送一个超声波脉冲后,如果遇到障碍物,声波会被反射回来,根据接收到回波的时间差,可以计算出物体的距离。超声波的传播速度大约为343米/秒,在空气中的传播损耗相对较小,因此适用于短距离测距。 在STM32...
在描述中,作者提到这个项目是一个半成品,主要涉及了两个核心技术:反射和折射。虽然反射部分未能完美实现,但折射技术已经成功应用。此外,项目是从DirectX 8(d8)程序改造为DirectX 9(d9)的,这意味着它利用了...
2. **创建插件DLL**:每个插件都是一个独立的DLL项目,它实现了前面定义的接口。插件开发者只需关注接口中定义的功能,无需了解主应用程序的内部结构。 3. **加载Assembly**:在主应用程序中,使用`Assembly.Load...
- **反射**:在动态加载类或实例化对象时,反射API可能被用到。 3. **数据库操作** - **JDBC**:Java数据库连接,用于与数据库进行交互,包括连接、执行SQL语句、处理结果集等。 - **ORM框架**:可能使用...
项目中可能包含多个角色(如弹球、挡板)和背景(如游戏界面),每个角色和背景都有各自的属性和行为。 7. **声音和动画效果**:为了增加游戏趣味性,可以添加音效和动画效果。例如,弹球碰撞时播放声音,或者角色...
《33-打砖块-少儿编程scratch项目源代码文件案例素材.zip》是一个专为儿童设计的编程学习资源,旨在帮助学生、团队、个人以及教师深入理解编程概念,特别是使用Scratch这一流行的可视化编程工具。Scratch是由麻省...
这篇实习日记记录了一个实习生的软件开发经验,从面试到实际项目的开发,涵盖了C#、XML、反射、抽象工厂模式、设计模式等多个知识点。 DAY 1: * 了解了C#基础知识,包括界面、数据压入堆栈、简单冒泡排序实现数据...
在实际项目中,你会用到大量的第三方库,如Spring Framework用于企业级应用开发,MyBatis或Hibernate作为ORM框架简化数据库操作,JUnit和Mockito进行单元测试等。了解并熟练使用这些工具,将提升你的开发效率。 ...
2. 时间记录:在发送脉冲后,微控制器启动另一个定时器,用于记录超声波从发射到接收到反射回波的时间。 3. 接收:当超声波传感器检测到反射回的波时,它会向STM32发送一个中断信号。 4. 计算:STM32捕获中断,停止...
1. **packages.config**:这是一个XML文件,记录了项目引用的所有NuGet包及其版本。这表明项目可能依赖于NuGet包管理器来引入外部库,比如用于自动更新的库。 2. **EnneaCode.Helper.csproj**:这是一个C#项目的...