【问题标题】:After converting an object to a String, how can I get the object back from the string again?将对象转换为字符串后,如何再次从字符串中取回对象?
【发布时间】:2018-05-03 09:58:19
【问题描述】:

我正在创建一个简单的 android 应用程序,我在其中将一个对象转换为 String。如何从string 重新转换对象?

我正在使用以下代码行将我的对象转换为字符串。

String convertedString = object.toString();

【问题讨论】:

  • 您需要在对象的类中实现自己的方法。
  • 您可以在字符串转换方法之前将对象与其他变量一起保存,然后您将拥有单独的对象。
  • 为什么要将对象转换为字符串并返回?你这样做是为了将对象存储在文件中吗?对象的类是什么?

标签: java android string object casting


【解决方案1】:

你不能**,因为这不是 toString 方法的用途。它用于制作对象的可读表示,但不用于保存和稍后重新加载。

您正在寻找的是序列化。请在此处查看本教程以开始使用:

http://www.tutorialspoint.com/java/java_serialization.htm

** 从技术上讲你可以,但你不应该

【讨论】:

    【解决方案2】:

    您可以通过两种方式做到这一点:

    • Java 序列化
    • 使用 Gson 库(更简单),记住这个库的目的是在使用 REST 服务时将简单的 json 转换为对象,反之亦然。

    希望对你有帮助

    【讨论】:

      【解决方案3】:

      您可以使用序列化将对象转换为字符串,反之亦然:

       String serializedObject = "";
      
       // serialize the object
       try {
           ByteArrayOutputStream bo = new ByteArrayOutputStream();
           ObjectOutputStream so = new ObjectOutputStream(bo);
           so.writeObject(myObject);
           so.flush();
           serializedObject = bo.toString();
       } catch (Exception e) {
           System.out.println(e);
       }
      
       // deserialize the object
       try {
           byte b[] = serializedObject.getBytes(); 
           ByteArrayInputStream bi = new ByteArrayInputStream(b);
           ObjectInputStream si = new ObjectInputStream(bi);
           MyObject obj = (MyObject) si.readObject();
       } catch (Exception e) {
           System.out.println(e);
       }
      

      【讨论】:

        【解决方案4】:

        使用 Java 序列化来做同样的事情。

        通过以下链接更好地了解如何转换 java 对象。
        前任。 http://www.geeksforgeeks.org/serialization-in-java/

        你也可以通过这个链接去:

        How to convert the following json string to java object?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-12-17
          • 2021-02-03
          • 2018-07-19
          • 2019-07-07
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多