我想定义一个方法,参数是Object类型的对象,在方法中遍历该对象的所有属性,如果是String类型的属性就对其做字符编码(new String(“原值”.getBytes(“iso8859-1”),“gbk”)),属性如果是另外一个实体类就也执行该方法的操作,有高手指点下吗。感激!!!

解决方案 »

  1.   

    楼主,看在我这么辛苦的份上记得多给点分数啊!import java.lang.reflect.Field;public class Test
    {
        public static void main(String[] args) throws Exception
        {
            PropertyBean bean = new PropertyBean();
            Field[] field = bean.getClass().getDeclaredFields();
            for (int i = 0; i < field.length; i++)
            {
                if (field[i].getGenericType().toString().equals(String.class.toString()))
                {
                    field[i].setAccessible(true);
                    //获得原来的值
                      String src = field[i].get(bean).toString();                //开始设置编码
                    field[i].set(bean, new String(src.getBytes("ISO-8859-1"),"GBK"));
                }
            }
            bean.show();
        }
    }class PropertyBean
    {
        private String str1;
        public String str2;
        public PropertyBean() throws Exception
        {
            str1 = new String("China".getBytes("UTF-8"));
            str2 = new String("美国".getBytes("UTF-8"));
        }
        public void show()
        {
            System.out.println(str1 + " " + str2);
        }
    }