集册 Java实例教程 通过反射将对象的所有字段写入缓冲区

通过反射将对象的所有字段写入缓冲区

欢马劈雪     最近更新时间:2020-01-02 10:19:05

512
通过反射将对象的所有字段写入缓冲区


//package com.nowjava;


public class Main {/** N o w  J a v a  . c o m 提 供 **/

    public static void main(String[] argv) throws Exception {

        Object obj = "nowjava.com";

        StringBuilder out = new StringBuilder();

        writeAllFieldsToBuffer(obj, out);

    }


    public static void writeAllFieldsToBuffer(final Object obj,

            final StringBuilder out) {

        final Class<?> thisClass = obj.getClass();/**来 自 时 代      J a v a   公   众 号 - nowjava.com**/


        for (final java.lang.reflect.Field f : thisClass.getFields()) {

            try {

                out.append(f.getName() + " = ");

                final Class<?> fType = f.getType();


                if (fType.isPrimitive()) {

                    final String n = fType.getName();

                    if (n.equals("boolean")) {

                        out.append(f.getBoolean(obj) + "\n");

                    } else if (n.equals("byte")) {

                        out.append(f.getByte(obj) + "\n");

                    } else if (n.equals("char")) {

                        out.append(f.getChar(obj) + "\n");

                    } else if (n.equals("double")) {

                        out.append(f.getDouble(obj) + "\n");

                    } else if (n.equals("float")) {

                        out.append(f.getFloat(obj) + "\n");

                    } else if (n.equals("int")) {

                        out.append(f.getInt(obj) + "\n");

                    } else if (n.equals("long")) {

                        out.append(f.getLong(obj) + "\n");

                    } else if (n.equals("short")) {

                        out.append(f.getShort(obj) + "\n");

                    } else {

                        throw new IllegalStateException(

                                "unknown primitive type: "

                                        + fType.getName());

 
展开阅读全文