I’d say SQLDataType is a very good use-case example, as it is directly from jOOQ.
An example of how that is useful: in jOOQ, a query result object has the following method:
<T> Field<T> field(String name, DataType<T> dataType)
So you could use result.field("name", SQLDataType.VARCHAR)
to actually get a string,
or result.field("id", SQLDataType.INT)
to get an int, etc.