相关疑难解决方法(0)

使用数组参数在参数化JUnit测试中的反射异常

我试图设置在4.11的JUnit一个参数测试,其生成单一的参数.但是,此参数必须是数组本身.

以下代码片段的预期行为test()是在第一次运行中arguments保存数组{"test1", "test2"}{"test3", "test4"}在第二次运行中保存数组时运行两次.

@RunWith(Parameterized.class)
public class Tester {

    @Parameter
    private String[] arguments;

    @Parameters
    public static Iterable<Object[]> data() {
        return Arrays.asList(
                new Object[][]{
                    {new String[] {"test1","test2"}},
                    {new String[] {"test3","test4"}}
                }
        );  
    }

    @Test
    public void test() {
        fail();
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我执行测试时,SlowCheckMemberAccess会抛出异常.Google没有针对此类问题提供任何结果.

任何人都可以解释这里出了什么问题吗?

未经过滤的JUnit跟踪是:

java.lang.IllegalAccessException: Class org.junit.runners.Parameterized$TestClassRunnerForParameters can not access a member of class org.mafagafogigante.dungeon.entity.creatures.Tester with modifiers "private"
at sun.reflect.Reflection.ensureMemberAccess(Unknown Source)
at java.lang.reflect.AccessibleObject.slowCheckMemberAccess(Unknown Source)
at java.lang.reflect.AccessibleObject.checkAccess(Unknown Source)
at java.lang.reflect.Field.set(Unknown …
Run Code Online (Sandbox Code Playgroud)

java reflection junit exception parameterized

1
推荐指数
1
解决办法
1047
查看次数

如何使用Google Guava查找元素是否存在于List中?

List<String>需要查找特定字符串是否存在于List中.

对于Eg:

String str = "apple";

List<String> listObject = Lists.newArrayList("apple", "orange", "banana");

我需要查找是否str存在listObject使用Google Guava.

所以我需要一个true或一个false结果.

我怎样才能做到这一点?

java collections guava

0
推荐指数
1
解决办法
1686
查看次数

无法将数组隐式转换为可迭代数组

根据java文档说:

Iterable<T>允许一个对象被用作换每个语句的目标.

在java中,我们可以执行以下操作:

for (final <? super T> : T[]) {...}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,为什么java不能将T []类型的对象视为Iterable,因为以下崩溃时出现了不可比较的类型编译错误:

final Iterable<T> anIterable = T[];
Run Code Online (Sandbox Code Playgroud)

java arrays foreach iterable

0
推荐指数
1
解决办法
32
查看次数

增强了for数组循环

我看到一行代码如下:

for (String w : words) sentence.add(w); // words is declared as String[] words = ...;
Run Code Online (Sandbox Code Playgroud)

据我所知,我认为能够以这种格式编写for循环,我们需要'words'是一个实现Iterable接口并覆盖iterator()函数的类的实例.但'words'是String数组的类型,这对于循环格式如何正确?

有人可以给我一些提示吗?

java

-1
推荐指数
2
解决办法
2618
查看次数