我有游标、输入流、输出流,我不是对每个流执行 .close() ,而是对它们调用一种方法来关闭它们。
我尝试过类似的事情:
private static void closeResource ( Object<T> item )
{
try
{
if ( item != null )
{
item.close();
}
}
catch ( Exception e )
{
throw new RuntimeException( e );
}
}
它不起作用..对象不是通用的。
最佳答案
-
Object
不是通用类型,因此您不能使用Object<T>
. Object
类(class)没有close
其中定义的方法。
面向泛型的解决方案是定义一个 generic method类型参数绑定(bind)到 Closeable
声明 close
的接口(interface)方法:
private static <T extends Closeable> void closeResource ( T item )
{
try
{
if ( item != null )
{
item.close();
}
}
catch ( Exception e )
{
throw new RuntimeException( e );
}
}
关于java - 关闭资源文件的泛型方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31355905/