Kotlin - Is there a smart way to throw NotImplementedError for all the methods of a class?

kotlin packed-decimal reflection resultset sqlbulkcopy


I need to implement an interface (ResultSet) having hundreds of methods. For now, I'm going to implement only a subset of these methods, throwing a NotImplementedError for the others.

In Java I found two solutions:

  1. Create an abstract class AbstractResultSet implementing ResultSet, declaring all methods to throw NotImplementedError. No hacks, but a lot of boilerplate code.
  2. Use Proxy.newProxyInstance to implement all methods together in the InvocationHandler. Less code but also less immediate to use for other coders.

Is there a third option in Kotlin?

In my case, I need to implement a a ResultSet over an IBM dataset (with packed decimals, binary fields, zoned numbers, rows with variable length, etc.) to import it in a SQLServer via SQLServerBulkCopy. I don't know which ResultSet methods are called by this class, so, for now, I'm going to implement only the "most used" methods, logging the calls to unimplemented method.

1/18/2018 10:32:51 PM

Popular Answer

Checkout the standard TODO function which marks a todo and also throws a NotImplementedError

 * Always throws [NotImplementedError] stating that operation is not implemented.
 * @param reason a string explaining why the implementation is missing.
public inline fun TODO(reason: String): Nothing = throw NotImplementedError("An operation is not implemented: $reason")


fun foo() {
        TODO("It will be soon")

With this way you can also find notImplemented fetures using the IDE "todo" tab. It is a plus.

10/30/2017 8:54:34 PM

Related Questions

Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow
Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow