java – toString:什么时候使用?
发布时间:2020-12-15 02:49:54 所属栏目:Java 来源:网络整理
导读:我上课了 class Configuration { // various stuff @Override public String toString() { // assemble outString return outString; }} 我还有另一堂课 class Log { public static void d(String format,Object... d) { // print the format using d }} Log
我上课了
class Configuration { // various stuff @Override public String toString() { // assemble outString return outString; } } 我还有另一堂课 class Log { public static void d(String format,Object... d) { // print the format using d } } Log类工作得非常好,我一直都在使用它.现在当我这样做: Configuration config = getConfiguration(); Log.d(config); 我得到编译器错误Log类型中的方法d(String,Object …)不适用于参数(配置).我可以解决这个问题: Log.d("" + config); // solution 1 Log.d(config.toString()); // solution 2 我的问题:这有什么不同?在第一个解决方案中,编译器注意到它必须连接两个字符串,但第二个是配置.所以Configuration#toString()被调用,一切都很好.在编译器错误情况下,编译器发现需要一个String,但是给出了一个Configuration.基本上是同样的问题. >需要:字符串 这些案例有何不同,为什么没有调用串? 解决方法
在设计语言时,有人决定当程序员使用运算符将??任意对象附加到字符串时,他们肯定需要一个String,因此隐式调用toString()是有意义的.
但是如果你调用一个带有其他东西的String的任意方法,那只是一个类型错误,正是所有静态类型应该阻止的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- java – Spring:init-method,PostConstruct,afterProperti
- Java:检查IP地址是否在数组列表中
- Java中的内部块如何访问应该超出范围的局部变量? (JVM如何
- java – 读取大文件时的OutofMemoryError
- POI的基本使用
- java – 为什么调用JFrame.pack()会增加额外的空间?
- java – 如何处理Android中的标签
- java – 刷新时刷新Android Viewpager片段
- java – getLocationOnScreen()vs getLocationInWindow()
- VirtualBox虚拟机使用USB设备(U盘)设置方法