小编Pet*_*ser的帖子

如何使用反射解析泛型返回类型的实际类型?

我有一个带有泛型返回类型方法接口,并且在运行时有一些间接实现该接口的类的实例.现在我想找出使用反射的每个实现的实际返回类型.

(我的想法是使用这种机制来定义使用接口的策略,并在运行时从一组策略实现中找到匹配的策略(特定的返回类型),而不必引入暴露类型的冗余辅助方法).

更具体地说,让我们考虑以下场景:

private interface DAO <I extends Serializable, E> {

    public E getById (I id);
}

private abstract class AbstractDAO <T> implements DAO<Integer, T> {

    @Override
    public T getById (Integer id) {
        // dummy implementation, just for this example
        return null;
    }
}

private class PersonDAO extends AbstractDAO<Person> {
}

private class PersonDAOExtension extends PersonDAO {
}
Run Code Online (Sandbox Code Playgroud)

在运行时,我想找出给定的class(PersonDAOExtension.class)将为该方法返回哪种类型getById(..)(期望为:) Person.class.

使用反射,我可以找出Type从这个方法返回的泛型.在这种情况下,它是一个TypeVariable(但也可以是 …

java generics reflection

8
推荐指数
2
解决办法
6260
查看次数

Java:解析 ISO_DATE / ISO_OFFSET_DATE

对于 REST Web 服务,我需要返回带有时区的日期(无时间)

ZonedDate显然, Java 中没有 a 这样的东西(只有LocalDateZonedDateTime),所以我使用它ZonedDateTime作为后备。

将这些日期转换为 JSON 时,我使用DateTimeFormatter.ISO_OFFSET_DATE格式化日期,效果非常好:

DateTimeFormatter formatter = DateTimeFormatter.ISO_OFFSET_DATE;
ZonedDateTime dateTime = ZonedDateTime.now();
String formatted = dateTime.format(formatter);
Run Code Online (Sandbox Code Playgroud)

2018-04-19+02:00

然而,尝试解析这样的日期......

ZonedDateTime parsed = ZonedDateTime.parse(formatted, formatter);
Run Code Online (Sandbox Code Playgroud)

...导致异常:

java.time.format.DateTimeParseException:无法解析文本“2018-04-19+02:00”:无法从 TemporalAccessor 获取 ZonedDateTime:{OffsetSeconds=7200},ISO 解析为 java 类型的 2018-04-19。时间.格式.解析

我也尝试过ISO_DATE并遇到了同样的问题。

我如何解析这样的分区日期?
或者是否有任何其他类型(在 Java Time API 内)我应该用于分区日期?

java iso date timezone-offset java-time

6
推荐指数
2
解决办法
5220
查看次数

有没有办法为SWT组件启用双缓冲?

在我正在构建的Eclipse RCP应用程序中,我注意到当我重建部分GUI(通过添加/删除控件)时,GUI会在每次修改时立即更新并重新绘制,这会导致闪烁效果.

有没有办法启用双缓冲,以便GUI刷新只在事件发送周期结束时发生一次?

java swt eclipse-rcp

3
推荐指数
1
解决办法
1782
查看次数

Angular:查找实现特定接口的所有提供者

在我的Angular(4+)应用程序中,我想创建一个基本的插件机制:

  • 扩展点定义为接口
  • 扩展实现该接口
  • 要查找所有扩展,我需要在运行时发现该接口的实现.

示例:SearchStrategy与实现的接口PersonSearchStrategyDocumentSearchStrategy(两个服务,注册为提供者).

有没有办法通过查询SearchStrategy接口的实现来动态获取这些服务的实例?怎么样?

(可能是一些与注射器相关的功能?)

strategy-pattern service-locator angular

3
推荐指数
1
解决办法
932
查看次数

为什么Throwable.class.getClassLoader()返回null?

为什么Throwable.class.getClassLoader()返回null?有一些隐藏的知识吗?

java classloader

1
推荐指数
1
解决办法
63
查看次数

How to Send Emojis using RestTemplate in Spring Boot?

My requirement is to send JSON data from service (A) to another service (B), in this case, I am sending emojis in JSON using Spring Boot RestTemplate. If I send a request from A to B, in the service B the message is displayed as a text with a question mark(?) instead of emoji.

Sending this JSON data

{
"from": "1233222225",
"to":  "8585855858",
"message": "Hello A, hope you are doing 23012020 "
}
Run Code Online (Sandbox Code Playgroud)

displays in service B as

{
"from": …
Run Code Online (Sandbox Code Playgroud)

java resttemplate spring-boot microservices spring-rest

0
推荐指数
1
解决办法
2323
查看次数