【发布时间】:2017-10-29 13:38:06
【问题描述】:
我需要实现一个具有数百种方法的接口 (ResultSet)。
现在,我将只实现这些方法的一个子集,为其他方法抛出一个NotImplementedError。
在 Java 中我找到了两种解决方案:
- 创建一个抽象类
AbstractResultSet实现ResultSet,声明所有方法抛出NotImplementedError。没有 hack,但有很多样板代码。 - 使用
Proxy.newProxyInstance一起实现InvocationHandler中的所有方法。代码更少,但对其他编码人员的使用也不太直接。
Kotlin 中有第三种选择吗?
就我而言,我需要在 IBM 数据集(包含压缩小数、二进制字段、分区数字、可变长度的行等)上实现 ResultSet,以通过 SQLServerBulkCopy 将其导入 SQLServer。我不知道这个类调用了哪些ResultSet 方法,所以,现在,我将只实现“最常用”的方法,记录对未实现方法的调用。
【问题讨论】:
标签: reflection kotlin resultset sqlbulkcopy packed-decimal