在我的程序中,有一个下面的方法;
private void foo(String title, String[] subtitles, int ... subtitleValues)
我的要求是;
字幕数和subtitleValues必须相等。用户可以发送任意数量的字幕和字幕值,但正如我所说的,字幕和subtitleValues的数量相同。
我不想同时使用两个参数并在
foo
函数中检查它们的计数,并说由于字幕和subtitleValues值不相等而无法创建您的表。我想要的是防止用户发送不相等的参数。我怎样才能做到这一点?提前致谢
PS:我找不到合适的标题,所以,如果有,请随时更改。
最佳答案
你不能这样做。要使您的方法更难于错误调用,您可以做的是为这样的构建器使用流畅的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();