【问题标题】:Differentiate between String args[] and String[] args区分 String args[] 和 String[] args
【发布时间】:2013-12-20 10:06:57
【问题描述】:

我见过两种不同的方式来声明 String 数组,但我不明白其中的区别。谁能解释一下有什么区别

String args[]

String[] args 

【问题讨论】:

  • 没有区别..
  • 支持前者是为了取悦以前的C程序员。
  • 关于第一种形式,this 说“惯例不鼓励这种形式”
  • This question 和接受的答案有一些关于这个主题的更多信息。

标签: java string


【解决方案1】:

没有区别(在 Java 中)。它们完全一样。来自JLS §10.2

[] 可以作为类型的一部分出现在声明的开头,或者作为特定变量的声明符的一部分,或者两者兼而有之。

【讨论】:

    【解决方案2】:

    它们没有区别,但我更喜欢类型后面的括号 - 更容易看出变量的类型是数组,而且更易读。

    但这始终取决于开发人员他会采用哪种方法以及使用起来更舒服。见@T.J。指官方文档的 Crowder 答案。

    【讨论】:

    • 我更喜欢遵循 ​​Java 编码约定,因为它们是标准的,并且可以节省大量关于空格与制表符等各种替代方案的讨论。
    【解决方案3】:

    唯一的区别是如果您声明一个变量并添加更多字段。

    String args[], array[];  // array is String[]
    
    String[] args, array[];  // array is String[][]
    

    但是,如果你提到你的主要方法,我更喜欢使用

    public static void main(String... args) {
    

    或者如果参数被忽略

    public static void main(String... ignored) {
    

    String...String[] 非常相似,只是它可以使用可变参数而不是数组来调用。例如

    MyClass.main("Hello", "World");
    

    顺便说一句,一个很好的例子说明为什么我不喜欢变量后面的[],因为类型是String[]而不是String .... ??

    这实际上是编译

    public int method(String args[])[] {
    

    相同
    public int[] method(String[] args) {
    

    但我认为后者更好。

    【讨论】:

      【解决方案4】:

      String args[]String[] args没有区别。两种方式都是一样的。

      【讨论】:

        【解决方案5】:

        它们之间没有区别。它们都是数组的声明。对于 Java 编译器,它们是相同的。只需声明一个数组变量

        【讨论】:

          猜你喜欢
          • 2010-09-23
          • 2011-08-25
          • 1970-01-01
          • 2014-02-22
          • 2012-10-21
          • 2016-05-22
          • 2015-09-06
          • 2012-06-17
          • 1970-01-01
          相关资源
          最近更新 更多