我有以下对象初始化。它是RestfulService类的一部分。
ParameterizedTypeReference<RestResponsePage<ScheduledScanDto>> ptr =
new ParameterizedTypeReference<RestResponsePage<ScheduledScanDto>>(){};
它在类中使用了几次,但有不同的参数。例如。
ParameterizedTypeReference<RestResponsePage<ScanDto>> ptr =
new ParameterizedTypeReference<RestResponsePage<ScanDto>>(){};
ParameterizedTypeReference<RestResponsePage<SomeOtherObject>> ptr =
new ParameterizedTypeReference<RestResponsePage<SomeOtherObject>>(){};
pageTypeReference(AnyClassObjectHere.class)
private List<ScanDto> methodMakeScanRequest{
List<ScanDto> = restTemplate.exchange("/localhost/scans-url",HttpMethod.GET, pageTypeReference(ScanDto.class)).getBody()
}
更新...
我的尝试是这样的。这种工作。然而,它现在只映射到一个通用的LinkedList。忽略对象类型。
private <T> ParameterizedTypeReference<RestResponsePage<T>> pageTypeReference(Class<T> clazz) {
return new ParameterizedTypeReference<RestResponsePage<T>>(){};
}
注意clazzname
是一个变量,而不是类型。这意味着您不能将其用作模板参数。例如,由于要将scandto.class
传递给它,因此应该将其声明为class
,而不仅仅是t
。可以使用反射创建T
类型的实例。
问题内容: 为什么这样做: 虽然这会产生类型不匹配错误: 为什么是这样?是否有办法解决此问题,而不使用原始类型? 问题答案: 尝试 注意:请注意,当您使用类似List的集合时,您只能在“只读”模式下使用它(添加空值除外)。
Java中是否有一种方法可以通过一个方法的声明返回不同的类型? 我希望此方法返回一个对象,并在函数调用时将其转换为正确的类型。这就是我的想法,但它不是这样工作的。我是否需要某种通用返回类型来执行此操作?解决这个问题的最佳方法是什么?
问题内容: 对于一个抽象类,我想定义一个为子类返回“ this”的方法: 我希望能够执行以下操作: 可以说香蕉面包会抛出一个IllegalArgumentException消息“不是蛋糕!”。 问题答案: 编辑 要求子类以某种方式表现是没有问题的,这超出了静态类型可以检查的范围。我们一直在这样做-一页又一页的普通英语指定您如何编写子类。 提出的另一种具有协变返回类型的解决方案必须做同样的事情-用简
问题内容: 这是我在elasticsearch中存储在索引上的数据类型。我必须找到包含主要成分牛肉(且重量小于1000)和成分-(辣椒粉且重量小于250),(橄榄油和重量小于300)以及所有其他成分类似的食谱。 索引的映射是 我的查询是 但这给了Null。有人可以帮我吗?我认为我没有正确使用嵌套查询 问题答案: 试试这个:
实际上,我试图在我的代码中实现如此基本的东西。我有一个json文件。然后我想读取这个json文件并将其转换为Java对象。为了处理它,我使用了gson,但不知何故,它为嵌套对象返回null。 JSON: TestJSON: 最后,我尝试从json文件中读取它: 但是最后,当我试图到达时,它给出了null。有什么建议吗?
我正在尝试验证是否调用了具有以下签名的方法: 嵌套的参数化 Set 给我带来了困难。我可以让它使用 any() 匹配器正确验证,如下所示: 如Mockito:使用泛型参数进行验证中所述,尽管令人恼火的是,如果我直接静态导入Matchers,它不起作用。任意,并将其称为: 但是在这种情况下,anyMapOf(clazz,clazz)似乎是更合适的匹配器。既然你不会做Set.class,我不知道你会怎