Wrapper
public interface Wrapper
Known Indirect Subclasses
CallableStatement,
Connection,
DataSource,
DatabaseMetaData,
ParameterMetaData,
PreparedStatement,
ResultSet,
ResultSetMetaData,
RowSet,
RowSetMetaData,
Statement
|
JDBC类的接口,当有问题的实例实际上是一个代理类时,它提供了检索委托实例的能力。
包装模式被许多JDBC驱动程序实现所采用,以提供特定于数据源的传统JDBC API以外的扩展。 开发人员可能希望获得作为代表实际资源的代理类实例包装的这些资源(委托)。 这个接口描述了一个标准机制来访问代理所代表的这些包装资源,以允许直接访问资源代理。
Summary
Public methods |
abstract boolean |
isWrapperFor(Class<?> iface) 如果这实现了接口参数,或者是直接或间接包装一个对象的包装器,则返回true。 |
abstract <T> T |
unwrap(Class<T> iface) 返回实现给定接口的对象,以允许访问非标准方法或代理未公开的标准方法。 |
Public methods
isWrapperFor
boolean isWrapperFor (Class<?> iface)
如果这实现了接口参数,或者是直接或间接包装一个对象的包装器,则返回true。 否则返回false。 如果这实现了接口,那么返回true,否则如果这是一个包装器,则返回在包装对象上递归调用isWrapperFor
的结果。 如果这不实现接口并且不是包装器,则返回false。 与unwrap
相比,此方法应作为低成本操作实施,以便呼叫者可以使用此方法避免可能失败的昂贵的unwrap
呼叫。 如果此方法返回true,则使用相同参数调用unwrap
应成功。
Parameters |
iface |
Class : a Class defining an interface. |
Returns |
boolean |
true if this implements the interface or directly or indirectly wraps an object that does. |
Throws |
SQLException |
if an error occurs while determining whether this is a wrapper for an object with the given interface. |
unwrap
T unwrap (Class<T> iface)
返回实现给定接口的对象,以允许访问非标准方法或代理未公开的标准方法。 如果接收机实现接口,则结果是接收机或接收机的代理。 如果接收者是包装器,并且包装对象实现接口,则结果是包装对象或包装对象的代理。 否则,返回调用unwrap
对包装对象或该结果的代理的递归结果。 如果接收方不是包装,并且没有实现接口,则会引发SQLException
。
Parameters |
iface |
Class : A Class defining an interface that the result must implement. |
Returns |
T |
an object that implements the interface. May be a proxy for the actual implementing object. |
Throws |
SQLException |
If no object found that implements the interface |