在方法参数中初始化数组

发布于 2024-11-09 00:58:57 字数 198 浏览 0 评论 0原文

在 PHP 中,您可以执行以下操作:

method(array("a", "b"));

您可以在 Java 中初始化一个字符串数组作为方法调用中的参数,例如 tihs:

method(new String[] = {"a", "b"});

谢谢!

In PHP you can do the following:

method(array("a", "b"));

Can you in Java initialize a String array as an argument in the method call, something like tihs:

method(new String[] = {"a", "b"});

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

拒绝两难 2024-11-16 00:58:57

Java 有一个等效的构造:

import java.util.Arrays;

public class Foo {
   public void method(String[] myStrArray) {
      System.out.println(Arrays.toString(myStrArray));
   }

   public static void main(String[] args) {
      Foo foo = new Foo();
      foo.method(new String[]{"hello", "goodbye"}); // **array created inline**
   }
}

Java has an equivalent construct:

import java.util.Arrays;

public class Foo {
   public void method(String[] myStrArray) {
      System.out.println(Arrays.toString(myStrArray));
   }

   public static void main(String[] args) {
      Foo foo = new Foo();
      foo.method(new String[]{"hello", "goodbye"}); // **array created inline**
   }
}
瑶笙 2024-11-16 00:58:57

@Hovercraft 的答案展示了如何在 Java 中创建内联数组。

您可以通过使用实用程序方法(利用 Java 的有限类型推断的方法)进一步改进该解决方案,以消除冗余的数组类型注释。

代码:

import java.util.Arrays;

// Utility class
class Array {
  public static <A> A[] of(A ... elements) {
    return elements;
  }
}

// Main class
class Main {
  public static void method(String[] s) {
    System.out.println(Arrays.toString(s));
  }

  public static void main(String[] args) {
    method(Array.of("a", "b", "c"));
  }
}

@Hovercraft's answer shows how to create an array inline in Java.

You could further improve on that solution by using an utility method (one that makes use of Java's limited type inference) to get rid of the redundant array type annotation.

Code:

import java.util.Arrays;

// Utility class
class Array {
  public static <A> A[] of(A ... elements) {
    return elements;
  }
}

// Main class
class Main {
  public static void method(String[] s) {
    System.out.println(Arrays.toString(s));
  }

  public static void main(String[] args) {
    method(Array.of("a", "b", "c"));
  }
}
旧街凉风 2024-11-16 00:58:57

Java 有 varargs 方法:

public void foo(String ... args){
    for(String arg : args){
        // do something
    }
}

您可以使用零到 n 个参数调用这样的方法,编译器从参数创建一个数组,例如该方法相当于此签名:

public void foo(String[] args)

Java has varargs methods:

public void foo(String ... args){
    for(String arg : args){
        // do something
    }
}

You can call such a method with zero to n parameters, the compiler creates an array from the parameters, e.g. the method is equivalent to this Signature:

public void foo(String[] args)
梦言归人 2024-11-16 00:58:57

但是我们有匿名类。

foo(new Runnable(){public void run(){}});

No

But we have anonymous class.

foo(new Runnable(){public void run(){}});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文