可能重复:
(String) or .toString()?
我有一个对象。这样做是否更好
final String params = myObject.toString();
或
final String params =(String)myObject;
答案 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()
方法的实现。