如何将任何对象转换为字符串?

43

这是我的代码:

for (String toEmail : toEmailList)          
{
    Log.i("GMail","toEmail: "+toEmail);
    emailMessage.addRecipient(Message.RecipientType.TO, new InternetAddress(toEmail));      
}
请给我一些关于这个的建议。

2
请问您能否澄清一下您的问题,是指哪个对象? - Salmaan
7个回答

76

在Java中,有多种方法可以将任何对象转换为字符串。

String convertedToString = String.valueOf(Object);  //method 1

String convertedToString = "" + Object;   //method 2

String convertedToString = Object.toString();  //method 3

我更喜欢第一和第三个

编辑
如果使用 Kotlin,这是官方的 Android 语言。

val number: Int = 12345
String convertAndAppendToString = "number = $number"   //method 1

String convertObjectMemberToString = "number = ${Object.number}" //method 2

String convertedToString = Object.toString()  //method 3

12
Object.toString() 可能会抛出 NPE。 - Stanislav Doroshin
3
String.valueOf 最终会调用 toString() 方法,但它确实会进行空值检查。 - Siddhartha
完全忘记了 String.valueOf()。 - jksevend

8
如果类没有 toString() 方法,那么可以使用 ToStringBuilder 类来自于 org.apache.commons:commons-lang3

pom.xml:

<dependency>
  <groupId>org.apache.commons</groupId>
  <artifactId>commons-lang3</artifactId>
  <version>3.12</version>
</dependency>

代码:

ToStringBuilder.reflectionToString(yourObject)

5

我已经使用Gson库和Java 1.8编写了一些转换方法。


它们是用于动态模型转换的。

字符串转对象

对象转字符串

列表转字符串

字符串转列表

HashMap转字符串

字符串转Json对象

//saeedmpt 
public static String convertMapToString(Map<String, String> data) {
    //convert Map  to String
    return new GsonBuilder().setPrettyPrinting().create().toJson(data);
}
public static <T> List<T> convertStringToList(String strListObj) {
    //convert string json to object List
    return new Gson().fromJson(strListObj, new TypeToken<List<Object>>() {
    }.getType());
}
public static <T> T convertStringToObj(String strObj, Class<T> classOfT) {
    //convert string json to object
    return new Gson().fromJson(strObj, (Type) classOfT);
}

public static JsonObject convertStringToJsonObj(String strObj) {
    //convert string json to object
    return new Gson().fromJson(strObj, JsonObject.class);
}

public static <T> String convertListObjToString(List<T> listObj) {
    //convert object list to string json for
    return new Gson().toJson(listObj, new TypeToken<List<T>>() {
    }.getType());
}

public static String convertObjToString(Object clsObj) {
    //convert object  to string json
    String jsonSender = new Gson().toJson(clsObj, new TypeToken<Object>() {
    }.getType());
    return jsonSender;
}

4

"toString()"是非常有用的方法,它返回一个对象的字符串表示形式。"toString()"方法返回一个对象的字符串表示形式。建议所有子类重写此方法。

声明:java.lang.Object.toString()

由于您没有提到要转换哪个对象,因此我只是在示例代码中使用任何对象。

Integer integerObject = 5;
String convertedStringObject = integerObject .toString();
System.out.println(convertedStringObject );

你可以在这里找到完整的代码。 你可以在这里测试代码。


3

我试图使用以下代码将Object类型变量转换为字符串:

尝试使用以下代码将对象值转换为字符串:

Java代码

 Object dataobject=value;
    //convert object into String  
     String convert= String.valueOf(dataobject);

0
我没有完全理解你的问题,但根据你的标题,你可以通过在 String 对象上使用 toString() 函数将任何类型的对象转换为字符串。

0

可以试试这个

 ObjectMapper mapper = new ObjectMapper();
 String oldSerial = mapper.writeValueAsString(list);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接