相关疑难解决方法(0)

Java方法签名后奇怪的"[]"

我今天查看了一些Java代码,我发现了一些奇怪的语法:

public class Sample {
  public int get()[] {
    return new int[]{1, 2, 3};
  }
}
Run Code Online (Sandbox Code Playgroud)

我认为无法编译并想修复我认为的错字,但后来我记得Java编译器确实接受了它!

有人可以帮我理解这是什么意思吗?它是一组函数吗?

java arrays syntax

118
推荐指数
4
解决办法
6828
查看次数

奇怪的数组返回类型

有没有人看过[]像这样的方法签名后放置的数组?

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));
}
Run Code Online (Sandbox Code Playgroud)

版画

[a, b, c, d, e]
Run Code Online (Sandbox Code Playgroud)

在过去,奇怪的符号一直是"C"兼容性,但我不会想象有人在C中写这个.

有谁知道为什么这甚至被允许?

我正在使用Java 7更新10,以防万一.

这在Java 6中也是如此.http://ideone.com/91rZV1


BTW这不编译,我也不期望它

public static <T> List mySplit(String s)<T> {
    return Collections.emptyList();
}
Run Code Online (Sandbox Code Playgroud)

java arrays syntax declaration

72
推荐指数
3
解决办法
2224
查看次数

带括号语法的Java函数定义

正在寻找源代码ByteArrayOutputStream,我看到了这个功能:

public synchronized byte toByteArray()[] {
    return Arrays.copyOf(buf, count);
}
Run Code Online (Sandbox Code Playgroud)

这种语法记录在哪里?我的意思是[]在功能面前.这是否与声明一个常规数组相同,其中括号可以在数组的名称之后或之前,但在这种情况下,括号可以在函数名称之后?

String[] args;
Run Code Online (Sandbox Code Playgroud)

VS

String args[];
Run Code Online (Sandbox Code Playgroud)

编辑:2018-05-22

我在这里发现了更多这种疯狂语法的用法:你不了解Java的10件事

#3是他们提到可以利用上述语法的所有方法的地方

java arrays function

25
推荐指数
1
解决办法
636
查看次数

标签 统计

arrays ×3

java ×3

syntax ×2

declaration ×1

function ×1