是否更好地执行toString()或将Object转换为String

时间:2011-07-29 11:04:09

标签: java

  

可能重复:
  (String) or .toString()?

我有一个对象。这样做是否更好

 final String params = myObject.toString();

 final String params =(String)myObject;

5 个答案:

答案 0 :(得分:9)

ToString将适用于所有对象(只要它们不为null)。如果转换为String,则该对象必须是String,否则将失败。所以我的猜测是你想要一个toString()调用,但这取决于你想做什么!

答案 1 :(得分:1)

当您使用(String)request.getAttribute("buyertosellerpersoni d") request.getAttribute("buyertosellerpersonid")时,会返回一个您将其转换为String对象的对象。如果您尝试进行类型转换的对象实际上不是String对象,您将获得ClassCastException。确保始终使用字符串值设置属性“buyertosellerpersonid”。

使用request.getAttribute("buyertosellerpersonid").toString()时 调用toString()返回的对象的request.getAttribute("buyertosellerpersonid")方法。

现在它依赖于此对象的toString()方法的实现,以确定它将返回什么。如果它是您放入属性“buyertosellerpersonid”的字符串,那么您将获得String值。如果它是其他任何东西,那么你将获得其哈希码的无符号十六进制表示。

对类型进行类型转换总是更好的主意。这可以确保您始终获得正确的对象,否则将抛出异常。您必须捕获此类异常以确保程序正常运行。

答案 2 :(得分:0)

(String)myObject只有在myObject是String类的实例时才能正常工作。

在myObject.toString()的情况下调用类myObject的toString()方法。 toString方法继承自Object类。

答案 3 :(得分:0)

这完全无关紧要,毫无意义 性能问题值得担心。

谁真的关心?它可能会对你的整体产生任何影响 算法很小。使用最有意义的那个 你的代码。

还有一件事,两者有区别,你只能在对象真的是String的情况下进行转换 您可以在任何Object上调用toString(),而不仅仅是String。

答案 4 :(得分:0)

这取决于你想要做什么。

当您将对象转换为类似(String)myObject的字符串时,您实际上是在尝试将对象转换为字符串,因此您可以获得类强制转换异常。

但是,在调用myObject.toString时,您将获得该对象的String格式的逻辑表示,并且它取决于该对象的toString()方法的实现。