为啥 Java 的输出语句这么长?

2016-02-04 15:11:25 +08:00
 yuntong

System.out.println("");

对比其他语言的输出语句会发现它很长.

有人说也可以把这个做短了啊!

那为啥 java 官方不把他做短了呢?

7587 次点击
所在节点    Java
51 条回复
zts1993
2016-02-04 15:22:19 +08:00
log.info 并不是很长。
WenhaoWu
2016-02-04 15:58:05 +08:00
ide 里不都是 sout 然后 tab 吗
dullwit
2016-02-04 16:02:09 +08:00
Java 里的方法都是依赖于类,不能存在独立的函数。
唯一的办法就是 import static
echo1937
2016-02-04 16:10:24 +08:00
一般靠 IDE 进行快速输入,至于看着看无所谓。
raysonx
2016-02-04 16:15:28 +08:00
因為 Java 信仰面向對象(雖然 int,double 等値類型的實例不是對象)
iburu
2016-02-04 16:15:52 +08:00
scala 大法好
jasontse
2016-02-04 16:16:36 +08:00
做短了就破坏 Java 原有的语法结构和规则了啊
shoaly
2016-02-04 16:21:14 +08:00
当初从 java 跳 php 的一个原因就是 java 没有系统函数 类似 md5, json_encode, 想不通
ppwangs
2016-02-04 16:30:10 +08:00
import static java.lang.System.out;
...
{
out.print("我也不是很长");
}
htfy96
2016-02-04 16:36:38 +08:00
@ppwangs 这个和#define P(X) printf(#X) 然后 P(我更短)有什么区别…
ppwangs
2016-02-04 16:43:19 +08:00
@htfy96 copy 一段
static import 是 Java 5 增加的功能。
就是将 Import 类中的静态方法,可以作为本类的静态方法来用。
谁让 java 面向对象来的。
SilentDepth
2016-02-04 16:45:53 +08:00
严格信仰 OO 的结果。「上帝先创造了 System ,并告诉它 out ,才有了 println()……」
shyling
2016-02-04 16:47:25 +08:00
常就长呗~
std::cout<<"长与短并不重要";
Console.Write("楼上说的对");
spance
2016-02-04 16:47:33 +08:00
java 世界不会凭空存在一个 printf(),方法是一个对象的属有的,对象要是基于一个类(模板)来产生的。

out 是 java.lang.System 类的一个静态成员,为什么要放到 System 类,因为 stdout,stderr 等是由 system 提供的;

out 成员具有 print,write 等方法,表示这些 write print 的操作就是说这个 out 实例自己有这个行为,而不是莫名其妙冒出一个全局的行为。

属主(对象)才会自己具有行为,这就是面向对象的实例和方法的思想,一定都不奇怪,反倒当你深入面向对象后,才会认为凭空出现的全局方法是很突兀的。
shyling
2016-02-04 16:48:14 +08:00
@shoaly 你说这个优点 php 好像想甩掉呢。。
yuriko
2016-02-04 16:48:36 +08:00
java 语法讲究规范性,这条输出语句很清楚的表明了操作内容
System 是个类,然后我们找到了其中的 out 这个静态的 PrintStream 实例,然后通过其 PrintStream 的 println 方法进行打印

和其他语言不同在于, Java 并没有为输出语句做一些特别的优化来减少调用时的麻烦,这和 Java 的语法风格不符
同时你可以试试只使用 System.out 来获取输出流做一些其他奇奇怪怪的事情
shyling
2016-02-04 16:50:15 +08:00
@spance 把一个 print 方法加到 java.lang.Object 里,这样就不突兀了
Zzzzzzzzz
2016-02-04 16:53:21 +08:00
来, scala 和 groovy 选一个吧.
uxstone
2016-02-04 16:57:02 +08:00
所以习惯了 java ,
再看 js 的代码,那叫一个痛苦。
tobyxdd
2016-02-04 16:57:28 +08:00
这叫 OOP

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/255382

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX