在我的程序中,我有一个方法如下;
private void foo(String title, String[] subtitles, int ... subtitleValues)
我的要求是;
我不想同时接受这两个参数并检查foo
函数中的计数,并说因为字幕和字幕值不相等而无法创建表。我想要的是;阻止用户发送不相等的参数。我怎么能这样做?
提前致谢
PS:我没有找到合适的标题,所以如果你有,请随时改变它。
答案 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)