给自己公司的项目写了两个功能 1.将对象 写入本地 缓存 2.去本地的缓存放到对象中

来源:互联网 发布:a1 24ga发热丝双发数据 编辑:程序博客网 时间:2024/06/05 15:03


废话不多说   直接上代码  




    //讲一个对象存储到本地缓存里面    public static void setObjectToSharedpreferences(Object oc,String name) {        if (oc == null)            return;        if (oc instanceof Integer || oc instanceof String || oc instanceof Double || oc instanceof Float || oc instanceof Boolean)            return;        Field[] fields = oc.getClass().getDeclaredFields();        SharedPreferences settings = LYApplication.getInstance().getSharedPreferences(name, 0);        SharedPreferences.Editor editor = settings.edit();        for (Field f : fields) {            f.setAccessible(true);        }        if (fields.length == 0)            return;        //输出所有属性        for (int i = 0; i < fields.length; i++) {            String field = fields[i].toString().substring(fields[i].toString().lastIndexOf(".") + 1);         //取出属性名称            try {                if (fields[i].get(oc) instanceof String)                    editor.putString(field, ((String) fields[i].get(oc)));                else if (fields[i].get(oc) instanceof Integer)                    editor.putInt(field, ((Integer) fields[i].get(oc)));                else if (fields[i].get(oc) instanceof Double)                    editor.putFloat(field, ((Float) fields[i].get(oc)));                else if (fields[i].get(oc) instanceof Float)                    editor.putFloat(field, ((Float) fields[i].get(oc)));                else if (fields[i].get(oc) instanceof Boolean)                    editor.putBoolean(field, ((Boolean) fields[i].get(oc)));                else if (fields[i].get(oc) instanceof Long)                    editor.putLong(field, ((Long) fields[i].get(oc)));            } catch (IllegalArgumentException e) {            } catch (IllegalAccessException e) {            }        }        editor.commit();    }    //取本地缓存  写入到一个对象中    public static void getObjectToSharedpreferences(Object oc,String name) {        if (oc == null)            return ;        if (oc instanceof Integer || oc instanceof String || oc instanceof Double || oc instanceof Float || oc instanceof Boolean)            return ;        Field[] fields = oc.getClass().getDeclaredFields();        SharedPreferences settings = LYApplication.getInstance().getSharedPreferences(name, 0);        for (Field f : fields) {            f.setAccessible(true);        }        if (fields.length == 0)            return ;        //输出所有属性        for (int i = 0; i < fields.length; i++) {            String field = fields[i].toString().substring(fields[i].toString().lastIndexOf(".") + 1);         //取出属性名称            try {                if (fields[i].get(oc) instanceof String) {                    String s = settings.getString(field, ((String) fields[i].get(oc)));                    fields[i].set(oc, s);                } else if (fields[i].get(oc) instanceof Integer) {                    int s = settings.getInt(field, ((Integer) fields[i].get(oc)));                    fields[i].set(oc, s);                } else if (fields[i].get(oc) instanceof Double) {                    float s = settings.getFloat(field, ((Float) fields[i].get(oc)));                    fields[i].set(oc, s);                } else if (fields[i].get(oc) instanceof Float) {                    float s = settings.getFloat(field, ((Float) fields[i].get(oc)));                    fields[i].set(oc, s);                } else if (fields[i].get(oc) instanceof Boolean) {                    boolean s = settings.getBoolean(field, ((Boolean) fields[i].get(oc)));                    fields[i].set(oc, s);                } else if (fields[i].get(oc) instanceof Long) {                    long s = settings.getLong(field, ((Long) fields[i].get(oc)));                    fields[i].set(oc, s);                }            } catch (IllegalArgumentException e) {                return ;            } catch (IllegalAccessException e) {                return ;            }        }    }


0 0
原创粉丝点击