【问题标题】:Android resetting all fields of a classAndroid重置类的所有字段
【发布时间】:2017-10-05 15:18:35
【问题描述】:

大家好,我有一个名为 UserData 的类,由静态字段组成,如下所示:

    public class UserData  {
private static JSONObject fbProfilePicture;
private static boolean loggedOut=false;
private static Integer commonFriendID;
private static Integer userID1;
private static Integer UserID2;
private static JSONObject stolenTrio=null;
}

实际上,该课程包含更多字段,但我决定向您展示我的课程的一个小版本。 在我的应用程序中,我有一个删除帐户并创建新帐户的功能,当我选择这样做时,我的应用程序会返回注册过程,但是有一个问题,我想在之后清除该类的所有字段删除用户。 我该怎么做?

【问题讨论】:

  • 为什么都是static
  • 正如@JoeC 所暗示的,您可能应该使用非静态属性并在每次登录时创建一个 UserData 实例。这样,您可以简单地创建一个新的 UserData 实例,并且您将拥有空属性。
  • @Joe C 因为我没有创建 UserData 的对象,所以在我的应用程序中我按如下方式使用它 UserData.get/set() 因为我的应用程序中不需要多个对象
  • @AlfieWoodland 我不能,因为我在 50 多个类中使用这些字段,这就是为什么我不创建类的对象并将它们全部设为静态
  • @AhmedKhairy 那么你应该重构你的引用链(深度)......将 50 多个类耦合到一个类(可以命名为意大利面条代码)是非常丑陋的......“静态”部分不是你最关心的......

标签: java android class variables field


【解决方案1】:

如果您认为您需要 UserData 的静态/单例实例,我建议您这样做:

public class UserDataSingleton {
   public static UserData userdata; 
}

并使您的UserData 成为一个带有非静态字段的简单 Pojo。 这样您就可以使用

重置数据
UserDataSingleton.userData = new UserData()

【讨论】:

  • ...或在 UserData 中提供一个方法“public static void clear(){}”来完成这项工作...
【解决方案2】:

创建一个重置您的价值观的方法。您可能希望稍后在该方法中做更多的事情。 Ex 通知侦听器您的对象已被清除。

【讨论】:

    猜你喜欢
    • 2014-02-22
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-28
    • 1970-01-01
    • 2019-04-19
    • 2011-05-09
    相关资源
    最近更新 更多