在java中,重要的就是对象吧,通常我们需要测试时,都需要对象.get()获得对象的属相值,这样操作的效率很低下啊。。。
现在奉上一个工具类,就可以解决这种问题。这里主要还是重写toString().
import java.lang.reflect.AccessibleObject;
import java.lang.reflect.Field;
public class EntityUtil {
/**
* 返回代表当前对象的字符串对象,忽略ignores所指定的的属性
* @return包含所有的成员变量的名称和他们的值,以及从父类中继承的属性。不包含Objecy中的属性。
*/
public static String toString(Object entity,String[] ignores){
if(entity == null){
return null;
}
StringBuffer buffer = new StringBuffer();
Class c = entity.getClass();
buffer.append(c.getName());
buffer.append("[");
Class parent = c.getSuperclass();
while(parent != null && !(parent == Object.class)){
Field[] fields = parent.getDeclaredFields();
try{
appendFields(buffer,fields,entity,ignores);
}catch(Exception e){
e.printStackTrace();
}
parent = parent.getSuperclass();
}
try{
Field[] fields = c.getDeclaredFields();
appendFields(buffer,fields,entity,ignores);
}catch(Exception e){
e.printStackTrace();
}
buffer.append("]");
return buffer.toString();
}
/**
* 返回代表对象的字符串对象
* @param entity
* @return 包含所有的成员变量的名称和他们的值,以及从父类中继承的属性。不包含Objecy中的属性。
*/
public static String toString(Object entity){
return toString(entity,new String[0]);
}
private static void appendFields(StringBuffer buffer,Field[] fields,Object entity,
String[] ignores) throws Exception{
AccessibleObject.setAccessible(fields, true);
for (int i = 0; i < fields.length; i++) {
String name = fields[i].getName();
if(!shouldIgnore(name,ignores)){
if(i!=0){
buffer.append(",");
}
if(!name.equals("class")){
Object value = fields[i].get(entity);
buffer.append(name+"="+value);
}
}
}
}
private static boolean shouldIgnore(String field, String[] ignores) {
boolean ignore = false;
for (int i = 0; i < ignores.length; i++) {
if(field.equalsIgnoreCase(ignores[i])){
ignore = true;
break;
}
}
return false;
}
}
分享到:
相关推荐
Java 对象的toString和equals方法重写 在 Java 中,每个对象都继承自 Object 类,而 Object 类中定义了两个重要的方法:toString() 和 equals()。这两个方法都是非常重要的,它们分别用于对象的字符串表示和对象...
C# 中的每个类或结构都隐式...创建自定义类或结构时,应该重写 ToString 方法,以便向客户端代码提供类型信息。 当您决定通过此方法提供的信息的类型时,应考虑您的类或结构是否会被不受信任的代码使用。请务必确保您
根据提供的文件内容,以下是关于C#中重写ToString()方法以及枚举类型的一些知识点: 1. 枚举类型(Enum)在C#中的使用: 在C#中,枚举类型是一种特殊的数据类型,用于表示一组命名的整型常量。枚举类型提高了代码的...
动力节点的Java课程适合绝对零基础的观看,教程中讲解了Java开发环境搭建、Java的基础语法、Java的面向对象。每一个知识点都讲解的非常细腻,由浅入深。适合非计算机专业,想转行做Java开发的朋友,或者想让Java基础...
在上面的例子中,我们重写了 toString 方法,以便于返回一个自定义的字符串表示形式。 检测对象的类型 toString 方法的第二个作用是检测对象的类型。例如: ``` let arr = [] console.log(Object.prototype....
例如,String 类重写了 Object 的 toString() 方法,以返回字符串的实际值。这样,当我们使用 System.out.println() 输出一个字符串时,实际上是调用了 String 类的 toString() 方法。 toString() 方法的优点是,...
Java toString方法重写代码示例 Java 中的 toString() 方法是 Object 类中的一个方法,该方法返回对象的字符串表示形式。默认情况下,toString() 方法将返回对象的类名和哈希码,但在实际开发中,我们通常需要...
然而,有时候根据特定项目需求或为了学习目的,我们可能会选择重写这个类。本篇将深入探讨如何在C++中自定义一个类似于`std::string`的字符串类,并覆盖其基本功能。 一、为什么要重写String类? 1. **定制功能**:...
在Java编程中,`toString()`方法的重写是一项重要的实践,尤其对于自定义类的调试和日志记录。`toString()`方法是Java中`Object`类的一个成员,它默认返回对象的类名以及在内存中的哈希码,这对于开发者来说往往并不...
然而,这样的输出对于调试和日志记录通常并不友好,所以我们常常需要重写`toString()`方法来提供更有意义的信息。 在Java中,`toString()`方法的重写通常是为了展示对象内部的状态,即它的成员变量的值。这样做可以...
C#界面转换以及当前时间显示(正确版Login:张三,Password:0000) 适合初学者
建议所有子类重写该方法”。这里有趣的是“简明”和“详实”。我们所钟爱的IDE们常常为我们生成equals/hashcode/toString这些方法,且我们通常不再去管它们。此外,这些IDE们提供了许多方式来生成我们自己
很多内置类型以及自定义类都重写了这个方法,以便提供更丰富的输出格式。以下是对C#中`ToString()`方法的一些常见用途和格式说明的详细总结。 1. **基本数据类型**: - 对于`int`、`double`等基本数据类型,`...
本篇文章将详细讲解容器的分类,重点探讨Java中的集合框架,包括List、Set以及重写toString方法的重要性,同时也会简单提及Collections类的使用。 首先,我们来了解容器的分类。在Java中,容器主要分为两大类:集合...
public String toString() { //重写toString()因为适配器在显示数据的时候,如果传入适配器的对象不是字符串的情况下,直接就使用对象.toString() // TODO Auto-generated method stub return Value; } public...
,这里牵涉一个问题:为什么要重写toString()呢?因为适配器在显示数据的时候,如果传入适配器的对象不是字符串的情况下,直接就使用对象.toString()。 运行界面效果请参见截图所示,需要配置数据库,db.sql是...
使用 @ToString 注解,可以自动重写 toString() 方法,会输出所有变量。 5. @EqualsAndHashCode 自动生成 equals(Object other) 和 hashCode() 方法 使用 @EqualsAndHashCode 注解,可以自动生成 equals(Object ...
在实际应用中,我们可以根据需要在用户自定义类型中重写 toString 方法,以返回该对象的属性信息。例如,String 类重写了 toString 方法,返回字符串的值。基本数据类型转换为 String 类型也是通过调用对应包装类的 ...
通过观看"day15_04(常用API)重写equals方法.avi","day15_03(常用API)equals方法比较内存地址.avi","day15_05(常用API)重写toString方法.avi","day15_01(常用API)API概念.avi","day15_02(常用API)Object类概述....