java - 泽西 Java 反射
问题描述
我是泽西图书馆的初学者。我坚持以下陈述:
Client c = Client.create();
WebResource web = c.resource(url);
ClientResponse resp = web.accept(MediaType.APPLICATION_JSON).get(ClientResponse.class) // Why are we using reflection here?
反射也用于:
resp.getEntity(String.class); // Why are we passing class<String> to getEntity()?
我想知道为什么我们将这些参数传递给上述方法?
解决方案
您看到的是一种为泛型类型提供类型安全的方法。我怀疑背景中仍然存在反射(对于对象实例构造),但这不是你自己在做什么。
考虑以下方法:
public <T> T get(Class<T> type) { \* content *\}
以上是声明的样子。除了背景中的反射(对象实例构造很可能需要)之外,这还允许您在不强制转换的情况下获得“正确”类型。否则,您将需要执行以下操作:
MyType object = (MyType) resp.getEntity();
我不确定这是否回答了这个问题?(否则让我们知道)
推荐阅读
- android - 由于重复类 android.support 导致 APK 创建失败
- python - 当按值选择任何标签时,BeautifulSoup 仅返回标签的文本,期望返回完整的标签
- typescript - 如何将元组类型转换为联合?
- javascript - 如何解析 JavaScript 数据
- angular - 错误:node_modules/@angular/material/form-field/index.d.ts 中的指令 MatFormFieldControl 没有选择器,请添加
- c# - 属性的属性继承在 C# 中失败
- c - 禁用算术优化的 gcc 标志
- javascript - 如何将多个属性传递给 React 中的 onChange 处理程序?
- java - Java - 如何找到在 Student 类中编写方法的得分最高的学生?
- python - 总结休假的数量