3.5グローバル変数ソースの消滅
33894 ワード
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
public class GlobalVariables {
public static UserBean User;
}
2.
public class GlobalVariables implements Serializable, Cloneable {
/**
* @Fields: serialVersionUID
*/
private static final long serialVersionUID = 1L;
private static GlobalVariables instance;
private GlobalVariables() {
}
public static GlobalVariables getInstance() {
if (instance == null) {
Object object = Utils.restoreObject(
AppConstants.CACHEDIR + TAG);
if(object == null) { //App ,
object = new GlobalVariables();
Utils.saveObject(
AppConstants.CACHEDIR + TAG, object);
}
instance = (GlobalVariables)object;
}
return instance;
}
public final static String TAG = "GlobalVariables";
private UserBean user;
public UserBean getUser() {
return user;
}
public void setUser(UserBean user) {
this.user = user;
Utils.saveObject(AppConstants.CACHEDIR + TAG, this);
}
// ————— 3 ————————
public GlobalVariables readResolve()
throws ObjectStreamException,
CloneNotSupportedException {
instance = (GlobalVariables) this.clone();
return instance;
}
private void readObject(ObjectInputStream ois)
throws IOException, ClassNotFoundException {
ois.defaultReadObject();
}
public Object Clone() throws CloneNotSupportedException {
return super.clone();
}
public void reset() {
user = null;
Utils.saveObject(AppConstants.CACHEDIR + TAG, this);
}
}
3.
public static final void saveObject(String path, Object saveObject) {
FileOutputStream fos = null;
ObjectOutputStream oos = null;
File f = new File(path);
try {
fos = new FileOutputStream(f);
oos = new ObjectOutputStream(fos);
oos.writeObject(saveObject);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (oos != null) {
oos.close();
}
if (fos != null) {
fos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
4.
public static final Object restoreObject(String path) {
FileInputStream fis = null;
ObjectInputStream ois = null;
Object object = null;
File f = new File(path);
if (!f.exists()) {
return null;
}
try {
fis = new FileInputStream(f);
ois = new ObjectInputStream(fis);
object = ois.readObject();
return object;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
try {
if (ois != null) {
ois.close();
}
if (fis != null) {
fis.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return object;
}
5.
private void gotoLoginActivity() {
UserBean user = new UserBean();
user.setUserName("Jianqiang");
user.setCountry("Beijing");
user.setAge(32);
Intent intent = new Intent(LoginNew2Activity.this,
PersonCenterActivity.class);
GlobalVariables.getInstance().setUser(user);
startActivity(intent);
}
6.
protected void initVariables() {
UserBean user = GlobalVariables.getInstance().getUser();
int age = user.getAge();
}
7.
GlobalVariables.getInstance().reset();
8.
public void reset() {
user = null;
Utils.saveObject(AppConstants.CACHEDIR + TAG, this);
}
9.
public class GlobalVariables3 implements Serializable, Cloneable {
/**
* @Fields: serialVersionUID
*/
private static final long serialVersionUID = 1L;
private static GlobalVariables3 instance;
private GlobalVariables3() {
}
public static GlobalVariables3 getInstance() {
if (instance == null) {
Object object = Utils.restoreObject(AppConstants.CACHEDIR + TAG);
if(object == null) { //App , ,
object = new GlobalVariables3();
Utils.saveObject(AppConstants.CACHEDIR + TAG, object);
}
instance = (GlobalVariables3)object;
}
return instance;
}
public final static String TAG = "GlobalVariables3";
private String userName;
private String nickName;
private String country;
public void reset() {
userName = null;
nickName = null;
country = null;
Utils.saveObject(AppConstants.CACHEDIR + TAG, this);
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
Utils.saveObject(AppConstants.CACHEDIR + TAG, this);
}
public String getNickName() {
return nickName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
Utils.saveObject(AppConstants.CACHEDIR + TAG, this);
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
Utils.saveObject(AppConstants.CACHEDIR + TAG, this);
}
// ----------- 3 -----------------
public GlobalVariables3 readResolve() throws ObjectStreamException,
CloneNotSupportedException {
instance = (GlobalVariables3) this.clone();
return instance;
}
private void readObject(ObjectInputStream ois) throws IOException,
ClassNotFoundException {
ois.defaultReadObject();
}
public Object Clone() throws CloneNotSupportedException {
return super.clone();
}
}
10.
public class GlobalVariables4 implements Serializable, Cloneable {
/**
* @Fields: serialVersionUID
*/
private static final long serialVersionUID = 1L;
private static GlobalVariables4 instance;
private GlobalVariables4() {
}
public static GlobalVariables4 getInstance() {
if (instance == null) {
Object object = Utils.restoreObject(AppConstants.CACHEDIR + TAG);
if(object == null) { //App , ,
object = new GlobalVariables4();
Utils.saveObject(AppConstants.CACHEDIR + TAG, object);
}
instance = (GlobalVariables4)object;
}
return instance;
}
public final static String TAG = "GlobalVariables3";
private String userName;
private String nickName;
private String country;
private HashMap<String, String> rules;
private String strCinema;
private String strPersons;
public void reset() {
userName = null;
nickName = null;
country = null;
rules = null;
strCinema = null;
strPersons = null;
guides = null;
Utils.saveObject(AppConstants.CACHEDIR + TAG, this);
}
public String getUserName() {
return userName;
}
public void setUserName(String userName, boolean needSave) {
this.userName = userName;
if(needSave) {
Utils.saveObject(AppConstants.CACHEDIR + TAG, this);
}
}
public String getNickName() {
return nickName;
}
public void setNickName(String nickName, boolean needSave) {
this.nickName = nickName;
if(needSave) {
Utils.saveObject(AppConstants.CACHEDIR + TAG, this);
}
}
public String getCountry() {
return country;
}
public void setCountry(String country, boolean needSave) {
this.country = country;
if(needSave) {
Utils.saveObject(AppConstants.CACHEDIR + TAG, this);
}
}
public HashMap<String, String> getRules() {
return rules;
}
public void setRules(HashMap<String, String> rules) {
this.rules = rules;
Utils.saveObject(AppConstants.CACHEDIR + TAG, this);
}
public JSONObject getCinema() {
if(strCinema == null)
return null;
try {
return new JSONObject(strCinema);
} catch (JSONException e) {
return null;
}
}
public void setCinema(JSONObject cinema) {
if(cinema == null) {
this.strCinema = null;
Utils.saveObject(AppConstants.CACHEDIR + TAG, this);
return;
}
this.strCinema = cinema.toString();
Utils.saveObject(AppConstants.CACHEDIR + TAG, this);
}
public JSONArray getPersons() {
if(strPersons == null)
return null;
try {
return new JSONArray(strPersons);
} catch (JSONException e) {
return null;
}
}
public void setPersons(JSONArray persons) {
if(persons == null) {
this.strPersons = null;
Utils.saveObject(AppConstants.CACHEDIR + TAG, this);
return;
}
this.strPersons = persons.toString();
Utils.saveObject(AppConstants.CACHEDIR + TAG, this);
}
HashMap<String, Object> guides;
public HashMap<String, Object> getGuides() {
return guides;
}
public void setGuides(HashMap<String, Object> guides) {
if (guides == null) {
this.guides = new HashMap<String, Object>();
Utils.saveObject(AppConstants.CACHEDIR + TAG, this);
return;
}
this.guides = new HashMap<String, Object>();
Set set = guides.entrySet();
java.util.Iterator it = guides.entrySet().iterator();
while (it.hasNext()) {
java.util.Map.Entry entry = (java.util.Map.Entry) it.next();
Object value = entry.getValue();
String key = String.valueOf(entry.getKey());
this.guides.put(key, String.valueOf(value));
}
Utils.saveObject(AppConstants.CACHEDIR + TAG, this);
}
// ----------- 3 -----------------
public GlobalVariables4 readResolve() throws ObjectStreamException,
CloneNotSupportedException {
instance = (GlobalVariables4) this.clone();
return instance;
}
private void readObject(ObjectInputStream ois) throws IOException,
ClassNotFoundException {
ois.defaultReadObject();
}
public Object Clone() throws CloneNotSupportedException {
return super.clone();
}
public void save() {
Utils.saveObject(AppConstants.CACHEDIR + TAG, this);
}
}