davidmoten/rxjava2-jdbc

Java 9 TODO Automapped interface

オープン

#22 opened on 2018/03/08

 (5 件のコメント) (0 件のリアクション) (0 人の担当者)Java (41 件のフォーク)github user discovery
enhancementhelp wanted

Repository metrics

Stars
 (396 個のスター)
PR merge metrics
 (平均マージ 2m) (30d で 1 merged PR)

説明

This is not an issue, but had no idea where to drop suggestions

Automapped interface with default methods currentluy does not work in Java 9

In order to work in Java 9, folowing changes should be made :

in org.davidmoten.rx.jdbc.Util#ProxyService

class add additional method

@SuppressWarnings("unchecked") public T newInstance(ResultSet rs, Class cls) { return (T) Proxy.newProxyInstance(cls.getClassLoader(), new Class[] { cls }, new ProxyInstance(cls, values())); }

in org.davidmoten.rx.jdbc.Util class

alter original method that works with java8

static T autoMap(ResultSet rs, Class cls, ProxyService proxyService) { return proxyService.newInstance(); }

to a modified version that works with java 9

static T autoMap(ResultSet rs, Class cls, ProxyService proxyService) { return proxyService.newInstance(rs, cls); }

Testing example that worked in Java 9

Database .test() .select(Person.class) .get() .map(Person::name) .blockingForEach(System.out::println);

Not related to this example - another suggestion - make annotation work with sql field aliases I would be happy to share more ideas for this great great api.

コントリビューターガイド