有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在Java中调用方法之前检查参数的数量

在我的程序中,我有一个方法如下

private void foo(String title, String[] subtitles, int ... subtitleValues)

我的要求是

  • 字幕数和字幕值必须相等。用户可以发送任意数量的字幕和字幕值,但正如我所说,字幕和字幕值的数量相等

我不想接受这两个参数并在foo函数中检查它们的计数,然后说由于字幕和字幕值不相等,无法创建表。我想要的是;防止用户发送不相等的参数。我该怎么做

提前谢谢

PS:我没有找到合适的标题,所以如果你找到了,请随意更改


共 (3) 个答案

  1. # 1 楼答案

    创建一个包含副标题、副标题值对的类。让您的方法接受此类实例的vararg(或列表或数组)

  2. # 2 楼答案

    你不能这样做。要想让方法更难被错误调用,您所能做的就是对构建器使用流畅的API,如下所示:

    class FooBuilder {
      public static FooBuilder withTitle(String title);
      public FooBuilder withSubtitle(String subtitle, int subtitleValue);
      public Foo build();
    }
    

    为了简洁起见,我省略了实现。然后你可以这样称呼它:

    Foo foo = FooBuilder.withTitle("MyTitle").withSubtitle("st1", 1).withSubtitle("st2", 2).build();
    
  3. # 3 楼答案

    在这种情况下,您应该创建可能单独的类Subtitle,它代表字幕。并创建适当的构造函数或方法来逐个添加字幕

    然后将你的foo方法重新表述为:

    private void foo(String title, List<Subtitle> subtitles)