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

时间:2012-10-01 07:42:05

标签: java

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

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

我的要求是;

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

我不想同时接受这两个参数并检查foo函数中的计数,并说因为字幕和字幕值不相等而无法创建表。我想要的是;阻止用户发送不相等的参数。我怎么能这样做?

提前致谢

PS:我没有找到合适的标题,所以如果你有,请随时改变它。

3 个答案:

答案 0 :(得分:4)

你不能这样做。您可以做的是为了让您的方法更难被错误地调用,就是为这样的构建器使用流畅的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();

答案 1 :(得分:2)

创建一个包含字幕subtitleValue对的类。让您的方法接受此类实例的vararg(或列表或数组)。

答案 2 :(得分:0)

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

然后将你的foo方法改为:

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