【发布时间】:2012-12-21 14:47:08
【问题描述】:
有人见过像这样放在方法签名之后的数组[]吗?
public static String mySplit(String s)[] {
return s.split(",");
}
public static void main(String... args) {
String[] words = mySplit("a,b,c,d,e");
System.out.println(Arrays.toString(words));
}
打印
[a, b, c, d, e]
过去,“C”兼容性的奇怪符号一直存在,但我也无法想象有人用 C 编写此代码。
有谁知道为什么甚至允许这样做?
我正在使用 Java 7 update 10,以防万一。
这在 Java 6 中做同样的事情。http://ideone.com/91rZV1
顺便说一句,这不会编译,我也不希望它编译
public static <T> List mySplit(String s)<T> {
return Collections.emptyList();
}
【问题讨论】:
-
我可以想象一个 C 程序员写出这种可怕的东西。 C++ 在涉及类型时以其怪异的语法而闻名,尤其是数组类型,尤其是与函数指针类型结合使用时。
-
请注意,
inx x[10]是完全相同的问题,只是不那么夸张 -
代码甚至无法编译。
-
@RomanC 我没有看到一个类同时具有
toString和static toString(String)的问题。但是,您是对的 - 没有注意到此调用或发现方法名称可疑。 -
当我学习 Java 时,'javap' 默认是这样做的。它总是让我感到困惑(并且使阅读输出变得更加棘手)。
标签: java arrays syntax declaration