由于Scanner实现什么API级别可以关闭?

时间:2015-08-30 03:49:15

标签: android java.util.scanner

我遇到类似于this one的问题,但java.util.Scanner除外。我有这种静态方法:

public static void close(final Closeable c) {
    if(c != null) {
        Log.debug(TAG, "instance of " + c.getClass().getName());
        try {
            c.close();
        } catch (IOException e) {
            // ignore
        }
    }
}

在API 15上传递Scanner时,它崩溃如下:

08-29 20:33:42.979: E/AndroidRuntime(2245): FATAL EXCEPTION: main
08-29 20:33:42.979: E/AndroidRuntime(2245): java.lang.IncompatibleClassChangeError: interface not implemented
08-29 20:33:42.979: E/AndroidRuntime(2245):     at com.mycompany.myapp.IOUtil.close(IOUtil.java:36)
[more lines omitted]

The docs说即使您将文档API级别设置为低于15,Scanner也会实现Closeable。这可能是特定于供应商的问题吗?我只有一个API 15设备可供测试,而且它与API 19之间没有任何关系,它工作正常。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

不能直接回答我的问题,但根据Derek Fung的回答,我的brew install findutils方法现在看起来像这样:

close()

反射代码已执行,似乎在API 15上正常工作。