为了账号安全,请及时绑定邮箱和手机立即绑定

在 JUnit 中使用参数化类时出现 Varargs 错误

在 JUnit 中使用参数化类时出现 Varargs 错误

米琪卡哇伊 2023-10-13 14:44:56
我正在使用该类创建一个测试用例Parameterized来提高可伸缩性。我有类似以下的东西...@RunWith(Parameterized.class)public class Test{    private final translator;    @Parameterized.Parameters(name = "translate {0}")    public static Collection parameters()    {        return Arrays.asList(new Object[][] {                { Translate.EN },                { Translate.FR }        });    }    public Test1(Translate translate)    {        this.translator = new TranslatorImpl(translate);    ...    ...我有一个 Linter,它在以下部分抛出错误......return Arrays.asList(new Object[][] {        { Translate.EN },        { Translate.FR }});它说...仅仅为了将其作为 varargs (...) 参数传递而创建数组是没有意义的;varargs 是一个数组。只需直接传递元素即可。它们将自动合并到一个数组中。顺便说一句,在需要 Object ... 的地方传递一个数组会使意图变得模糊:数组应该是一个对象还是一组对象?我可能需要添加更多参数,因此使用该类Parameterized很有帮助,我想使用它,但我不确定如何解决我遇到的问题以及它是否值得解决。任何想法都会有帮助。
查看完整描述

1 回答

?
杨魅力

TA贡献1811条经验 获得超6个赞

Arrays.asList的签名是public static <T> List<T> asList(T... a)因此Arrays.asList,您可以向其提供单独的数组元素,而不是向 提供数组。在这个特殊情况下:


return Arrays.asList(

  new Translate[] { Translate.EN },

  new Translate[] { Translate.FR }

);


查看完整回答
反对 回复 2023-10-13
  • 1 回答
  • 0 关注
  • 86 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信