Java 如何使用Twitter4j存储和加载用户

Java 如何使用Twitter4j存储和加载用户,java,twitter4j,Java,Twitter4j,在Twitter4j中,您会得到如下用户对象: User user = twitter.showUser(userID); 现在,我想把这个用户存储在一个文本文件中。我正在使用User的toString()方法 它给了我如下的信息: UserJSONImpl{id=xxxxxx, name='xxxx xxxxx', screenName='xxxxxx', ... } 问题: 使用User的toString()方法进行存储是否合法 如何使用此UserJSONImpl文本加载用户?我需要像下

在Twitter4j中,您会得到如下用户对象:

User user = twitter.showUser(userID);
现在,我想把这个用户存储在一个文本文件中。我正在使用
User
toString()
方法

它给了我如下的信息:

UserJSONImpl{id=xxxxxx, name='xxxx xxxxx', screenName='xxxxxx', ... }
问题:

  • 使用
    User
    toString()
    方法进行存储是否合法

  • 如何使用此
    UserJSONImpl
    文本加载用户?我需要像下面这样的东西:

  • UserJSONImpl{id=xxxxxx, name='xxxx xxxxx', screenName='xxxxxx', ... }
    

    用户用户=新用户(UserJSONImpl) 我认为直接依赖于
    toString()
    是个坏主意,因为对该方法的更改超出了您的控制范围。例如,如果格式更改或添加了新字段,该怎么办?您如何知道何时开始反序列化数据

    您可以使用库以标准格式编写
    用户
    对象,例如用于编写JSON-但这仍然不好,您必须处理
    用户
    对象,它是
    用户
    的内部表示形式

    无论哪种方式,您都可能面临
    User
    对象发生更改的风险。我会考虑使用<代码>用户< /Cord>对象来构建与问题域相关的对象,然后继续这些对象。
    其思想是负责
    Twitter4J用户->问题域对象
    转换的组件可以处理不同的
    Twitter4J用户
    对象,并为应用程序提供一致的视图。虽然没有更多的背景,这可能是完全的矫枉过正,你应该能够更好地判断这一点。我希望这能有所帮助

    为什么
    Twitter4j
    没有用自己的输出初始化
    用户的官方功能?这是一个奇怪的问题吗?@zagy从图书馆的角度来看,
    User
    对象的唯一来源是Twitter,因此它隐藏了结构(例如在
    UserJSONImpl
    中)。我们的期望是,您将使用库创建的对象,而不是自己构建它们。您找到了解决方案吗?