原理是将传入的属性名,拼接成 get方法(布尔类型需另作处理,这里没用到就没写),进行调用并获得返回值,将这个返回值 和 wishValue进行比较。
/**
* 校验 product对象中 某项属性的值是否和期望的相同
*
* @param attribute
* 注意:首字符可以小写,typeId ==> TypeId ==> getTypeId
* @param wishValue
* @param pt
* @return
也可以将对象转换成为map之后再做比较,那样的话适用于多对 校验,只要校验一对的话,这个方法比较适合
*/
@SuppressWarnings("unused")
private Boolean checkAttrEqual(String attribute, String wishValue, Product pt) {
attribute = attribute.substring(0, 1).toUpperCase() + attribute.substring(1);
try {
Method method = pt.getClass().getDeclaredMethod("get" + attribute, null);
String realValue = (String) method.invoke(pt, null);
return wishValue.equals(realValue);
} catch (Exception ex) {
ex.printStackTrace();
}
return false;
}
分享到:
相关推荐
### Java反射机制与NoSuchMethodException详解 在Java编程中,反射是一种强大的机制,允许程序在运行时检查和修改自身结构和行为。然而,当开发者尝试使用反射调用一个不存在的方法时,便会遇到`java.lang....
Struts2是一个流行的Java web开发框架,它提供了一套强大的输入校验机制,确保用户提交的数据符合业务逻辑的要求。在本文中,我们将深入探讨Struts2的输入校验功能,包括手动输入校验和基于验证框架的输入校验。 ##...
这个组件提供了许多解决编程中常见问题的工具类,但由于它对集合的操作可以进行反射调用,且ObjectInputStream在反序列化时未能对生成对象的类型进行严格限制或校验,因此可被攻击者利用来执行任意代码。工具通过...
最后,书中的"深度历险"可能涵盖了一些高级主题,如Java反射、动态代理、JNI(Java Native Interface)和JVM优化技术。反射允许在运行时检查和修改类的结构,动态代理则可以实现动态地创建具有特定行为的代理类。JNI...
根据提供的文件信息,本文将对《Java开发经常遇到的经典265道题》中的关键知识点进行梳理和总结。这份文档汇总了丰富的Java面试题目及解答,对于具备一年左右Java开发经验的技术人员来说,是一个非常宝贵的参考资料...
Java 基础面试题是求职者在面试Java开发岗位时常常遇到的挑战。这些题目旨在测试应聘者的编程基础、设计原则以及对Java特性的理解。以下是对几个关键知识点的详细解释: 1. **设计模式**: 设计模式是解决软件设计...
同时,也深入探讨了Java中的反射、代理机制以及数据库事务、视图、索引和存储过程等高级特性。 6. Java中的高级技术: 曹胜欢还探讨了Java中的枚举、泛型、多线程、异常处理机制、网络通信编程、JSP和Servlet的...
根据提供的文件信息:“java常见面试题指南.docx”,我们可以推断出这份文档主要涉及Java编程语言中的常见面试问题。为了更好地帮助准备Java相关的面试,下面将详细解析几个可能出现在这份文档中的关键知识点。 ###...
例如,当一个方法期望一个接口类型的对象,但实际传入的是非接口实现类的对象时,就会抛出此异常。 - **解决方法**: - 检查类和接口的定义,确保它们之间是兼容的。 - 更新类库或应用程序代码,以确保类型兼容。...
- **详细解释**: 新生代收集担保是指在进行 minor GC 时,确保有足够的空间将活跃对象从 Eden 区和 Survivor 区之一复制到另一个 Survivor 区。如果没有足够的空间,则会触发 Full GC。关闭此选项意味着 JVM 将不再...
这个"commons-lang3-3.12.0-bin.rar"压缩包包含了Lang项目的最新版本3.12.0的二进制文件,适用于Java开发者,特别是那些希望在他们的项目中利用额外功能和优化的开发者。 Lang项目提供了许多实用工具类,涵盖了字符...
### Java经典编程100例之注解(Annotation)详解 #### 一、引言 在Java编程领域,注解(Annotation)作为一种元...希望通过对本书《Java经典编程100例》的学习,能够帮助读者更深入地理解Java编程的核心概念和技术。
- **Java技能**:精通Java初级和高级知识,包括反射、泛型和代理等,熟悉面向对象编程和多种设计模式。 - **JavaWeb技能**:熟练使用JSP、Servlet、Filter、Listener等,了解HTTP协议,擅长JDBC和DBUtil工具包。 ...
- **原理**:比较当前值是否与期望值相等,如果相等则更新为新值。 - **应用场景**:在高并发环境下实现原子操作。 ### Iterator与Iterable - **`Iterator`接口**:用于遍历集合元素。 - **`Iterable`接口**:使一...
3.2.3 Java反射机制 3.3 资源访问利器 3.3.1 资源抽象接口 3.3.2 资源加载 3.4 BeanFactory和ApplicationContext 3.4.1 BeanFactory介绍 3.4.2 ApplicationContext介绍 3.4.3 父子容器 3.5 Bean的生命周期 3.5.1 ...
3.2.3 Java反射机制 3.3 资源访问利器 3.3.1 资源抽象接口 3.3.2 资源加载 3.4 BeanFactory和ApplicationContext 3.4.1 BeanFactory介绍 3.4.2 ApplicationContext介绍 3.4.3 父子容器 3.5 Bean的生命周期 3.5.1 ...
例如,Spring 5.x开始支持JDK 8及以上版本,利用JDK 8的反射增强和默认方法,提供了更好的API和功能。Spring 5.x引入了对Kotlin语言的支持,允许开发者采用函数式编程风格,进一步提高了代码的简洁性和效率。 ...
类加载机制是Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。 2. 类加载机制的生命周期 类从创建起,就注定了其是有生命周期的。...