小编Joh*_*son的帖子

关闭流链和尝试资源

我对stackoverflow的第一个问题,我退出了;)

使用流链时,通常最好只关闭链中的最后一个流,因为close()操作应该在链的所有流中传播。

将try-with-source语句和流链接结合在一起时,什么被认为是好的做法?

a)在try语句中创建所有流:

try (InputStream processIn = p.getInputStream();
            InputStreamReader inReader = new InputStreamReader(processIn);
            BufferedReader input = new BufferedReader(inReader)) { 
    .
    .
}
Run Code Online (Sandbox Code Playgroud)

或b)只是链中的最后一个成员:

InputStream processIn = p.getInputStream();
InputStreamReader inReader = new InputStreamReader(processIn);
try (BufferedReader input = new BufferedReader(inReader)) { 
    .
    .
}
Run Code Online (Sandbox Code Playgroud)

我猜这两个版本最终都可以使用,但是我假设a)会生成重复的close()调用,不是吗?

stream chain try-with-resources

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

使用数组参数在参数化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
查看次数