Java中啥时候需要显示重载toString方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中啥时候需要显示重载toString方法相关的知识,希望对你有一定的参考价值。
为什么有的社会需要重载toString();有的时候不用啊。请解答一下
参考技术A 从本质讲,只有一种情况需要重载toString:“需要序列化(成字符串)的时候”
这一种情况表现出多种外在现象
比如
1、狭义方面,需要把对象打印显示字符串,打印过程就是对输出流的序列化。
2、需要传递给java库的各种字符接口的时候。
3、自定义的类,需要以显示成比较特殊形式的字符串。
4、等等等等
toString不是序列化的唯一方式,但用到toString就只是为了序列化成字符串
掌握序列化的技巧是关键。
=========
楼上有人说那么多,其实只是属于第1条一种表面情况。
js中啥时候需要“var”? [复制]
【中文标题】js中啥时候需要“var”? [复制]【英文标题】:When is "var" needed in js? [duplicate]js中什么时候需要“var”? [复制] 【发布时间】:2011-10-16 10:07:04 【问题描述】:可能重复:Difference between using var and not using var in JavaScript
有时,我看到有人这样做
for(var i=0; i< array.length; i++)
//bababa
但我也看到有人这样做......
for(i=0; i< array.length; i++)
//bababa
两者有什么不同?谢谢你。
【问题讨论】:
【参考方案1】:从技术上讲,您永远不必使用它,javascript 会愉快地进行 - 使用您的变量,即使您没有提前声明它们。
但是,实际上,在声明变量时应该始终使用它。它将使您的代码更具可读性并帮助您避免混淆,尤其是当您使用具有相同名称和不同范围的变量时...
var n = 23;
function functThat( )
var n = 32; // "local" scope
【讨论】:
想解释否决票? 我没有投反对票,但我的猜测是因为这些陈述都是错误的。您真的不希望全局变量弹出并随机更改。是的,弗吉尼亚,Javascript 真的很烂。但是为了帮助减轻您在任何地方使用 var 以减少代码错误的情况。与可读性无关。 问题询问使用 var 和不使用 var 之间的区别是什么,但这个答案只是给出了何时使用它的建议,而没有解释实际的区别是什么。【参考方案2】:var
关键字从不“需要”。但是,如果您不使用它,那么您声明的变量将在全局范围内公开(即作为window
对象的属性)。通常这不是你想要的。
通常您只希望您的变量在当前范围内可见,这就是 var
为您所做的。它仅在当前范围内声明变量(但请注意,在某些情况下,“当前范围”将与“全局范围”一致,在这种情况下,使用 var
和不使用 var
没有区别)。
在编写代码时,您应该更喜欢这种语法:
for(var i=0; i< array.length; i++)
//bababa
或者如果你必须,那么像这样:
var i;
for(i=0; i< array.length; i++)
//bababa
这样做:
for(i=0; i< array.length; i++)
//bababa
...将在全局范围内创建一个名为i
的变量。如果其他人碰巧也在使用全局 i
变量,那么您只是覆盖了他们的变量。
【讨论】:
嗨,在您的示例中,您是否必须在其他地方注册全局变量 I 才能将其声明为全局范围,或者是否任何未使用 var 声明的内容都被 javascript 引擎隐式理解为全局变量? @Chin - 任何没有用var
声明的东西都会被隐式理解为JavaScript中的全局变量,不需要特殊注册。
感谢@aroth 的好建议。将变量保存在本地也有助于我在 Google chrome 中调试时轻松浏览代码。以上是关于Java中啥时候需要显示重载toString方法的主要内容,如果未能解决你的问题,请参考以下文章