应用反射写的tostring方法

java哥 阅读:539 2021-07-15 18:31:34 评论:0

应用反射写的tostring方法

应用反射写的tostring方法,方便以后查询

代码

package com.chzhao.reflecttest; 
 
import java.lang.reflect.Field; 
import java.util.List; 
 
public class ToStringToolkit { 
	@SuppressWarnings("rawtypes") 
	public static <T> String toStringGeneric(T t) { 
		StringBuilder sb = new StringBuilder(); 
		Class clazz = (Class) t.getClass(); 
		Field[] fs = clazz.getDeclaredFields(); 
		for (int i = 0; i < fs.length; i++) { 
			Field f = fs[i]; 
			f.setAccessible(true); 
			sb.append("\t"); 
			sb.append(f.getName()); 
			sb.append(":"); 
			try { 
				sb.append(f.get(t).toString()); 
			} catch (IllegalArgumentException e) { 
				e.printStackTrace(); 
			} catch (IllegalAccessException e) { 
				e.printStackTrace(); 
			} 
		} 
		sb.append("\n"); 
		return sb.toString(); 
	} 
 
	public static <T> String toStringList(List<T> list) { 
		StringBuilder sb = new StringBuilder(); 
		for (T t : list) { 
			sb.append(toStringGeneric(t)); 
		} 
		return sb.toString(); 
	} 
} 
 

用法

package com.chzhao.reflecttest; 
 
public class Model { 
 
	private String name; 
	private int age; 
 
	public String getName() { 
		return name; 
	} 
 
	public void setName(String name) { 
		this.name = name; 
	} 
 
	public int getAge() { 
		return age; 
	} 
 
	public void setAge(int age) { 
		this.age = age; 
	} 
} 
 
package com.chzhao.reflecttest; 
 
public class App { 
	public static void main(String[] args) { 
		Model m = new Model(); 
		m.setAge(100); 
		m.setName("找"); 
		System.out.println(ToStringToolkit.toStringGeneric(m)); 
	} 
} 
 

输出

	name:找	age:100 

标签:java
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号