2016-06-23 58 views
0

我有一个类名为参数封装不同的价值观,包括java.sql.Clob如何强制释放资源?

随着JDBC4规范,我们有一个free()方法,其可称为分配给Clob对象免费资源。我想制作Parameter类的AutoClosable并调用free()方法的内部close()

这工作了伟大的,但我也想要的东西强制执行,或者至少暗示其他人Parameter是除了文档的AutoClosable

实例有办法实现这一点?基本上我正在寻找额外的东西,可以在这种情况下做。

+2

谁应该使用'Parameter'给程序员这个提示? IDE?编译器? –

+0

[AutoCloseable](https://docs.oracle.com/javase/8/docs/api/java/lang/Au​​toCloseable.html)是一个界面。除了执行它,还有什么更多的“提示”? – Fildor

+0

@Lutz Horn我从IDE的角度思考。我知道我的问题是荒谬的,但我没有更好的方式来表达它。 :) – VishalDevgire

回答

1

通常的做法是使用可配置的超时实现ObjectPool。当从ObjectPool获取对象时开始计数,并检查它是否在超时结束时返回到池。如果Object未返回到池中,则抛出异常或强制释放Object保留的资源。这样你就可以强制程序员调用close()方法或检测泄漏。

大多数数据库连接池库都具有此功能。检查JDBCConnectionPool - InactiveConnectionTimeoutSecondsApache Commons Pool - AbandonedConfig