davidmoten/rxjava2-jdbc

Java 9 TODO Automapped interface

开放

#22 创建于 2018年3月8日

 (5 条评论) (0 个反应) (0 位负责人)Java (41 个派生)github user discovery
enhancementhelp wanted

仓库指标

星标
 (396 个星标)
PR 合并指标
 (平均合并 2分钟) (30 天内合并 1 个 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.

贡献者指南