⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 beanhelper.java

📁 采用Eclispe开发平台
💻 JAVA
字号:
package com.whatratimes.dbms;

import java.util.Hashtable;
import java.util.Enumeration;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;

/**
 * User: Tao
 * Date: May 13, 2003
 * Time: 9:38:16 PM
 */
public class BeanHelper
{
    private static Hashtable ClassFields = new Hashtable();

    public static Hashtable getValues(Object this_bean)
    {
        Hashtable prop = new Hashtable();

        Hashtable fields = getFields(this_bean);

        if (fields.isEmpty())
        {
            return prop;
        }

        Enumeration enu = fields.keys();

        while (enu.hasMoreElements())
        {
            String this_field_name = enu.nextElement().toString();

            Field this_field = (Field) fields.get(this_field_name);

            try
            {
                prop.put(this_field_name, this_field.get(this_bean));
            } catch (Exception e)
            {
                e.printStackTrace();
            }
        }

        return prop;
    }

    public static void setValues(Object this_bean, Hashtable values)
    {

        Hashtable fields = getFields(this_bean);

        if (fields.isEmpty())
        {
            return;
        }

        Enumeration enu = values.keys();

        while (enu.hasMoreElements())
        {
            String this_field_name = enu.nextElement().toString();

            if (!fields.containsKey(this_field_name))
            {
                continue;
            }

            Object this_field_value = values.get(this_field_name);

            Field this_field = (Field) fields.get(this_field_name);

            try
            {
                this_field.set(this_bean, this_field_value);
            } catch (Exception e)
            {
                e.printStackTrace();
            }
        }

        return;
    }

    public static void setValue(Object this_bean, String field_name, Object field_value)
    {

        Hashtable fields = getFields(this_bean);

        if (fields.isEmpty())
        {
            return;
        }

        if (fields.containsKey(field_name))
        {
            Field this_field = (Field) fields.get(field_name);
            try
            {
                this_field.set(this_bean, field_value);
            } catch (Exception e)
            {
                e.printStackTrace();
            }
        }

        return;
    }

    private static Hashtable generateFields(Object this_bean)
    {
        Hashtable fs = new Hashtable();

        Field[] fields = this_bean.getClass().getFields();

        for (int i = 0; i < fields.length; i++)
        {
            int m = fields[i].getModifiers();

            if (Modifier.isStatic(m) || Modifier.isFinal(m) || (!Modifier.isPublic(m)))
            {
                continue;
            }

            fs.put(fields[i].getName(), fields[i]);
        }

        return fs;
    }

    private static Hashtable getFields(Object this_bean)
    {
        Hashtable fs = (Hashtable) ClassFields.get(this_bean.getClass().getName());

        if (fs == null)
        {
            fs = generateFields(this_bean);

            ClassFields.put(this_bean.getClass().getName(), fs);
        }

        return fs;

    }

    public static void keepFields ( Object this_bean )
    {
        getFields( this_bean );
    }

    public static void keepFields ( String table_name )
    {

        try
        {
            getFields( Class.forName(DBHelper.TABLE_PACKAGE_PREFIX + table_name).newInstance() );
        } catch (Exception e)
        {
            e.printStackTrace();
        }
    }

    public static boolean containsField ( String class_name, String field_name)
    {

        Object obj = ClassFields.get(DBHelper.TABLE_PACKAGE_PREFIX + class_name);
        if ( obj == null )
        {
            return false;
        }

        return ((Hashtable)obj).containsKey(field_name);

    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -