首页 > 解决方案 > 泽西 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()?

我想知道为什么我们将这些参数传递给上述方法?

标签: javareflectionjersey

解决方案


您看到的是一种为泛型类型提供类型安全的方法。我怀疑背景中仍然存在反射(对于对象实例构造),但这不是你自己在做什么。

考虑以下方法:

public <T> T get(Class<T> type) { \* content *\}

以上是声明的样子。除了背景中的反射(对象实例构造很可能需要)之外,这还允许您在不强制转换的情况下获得“正确”类型。否则,您将需要执行以下操作:

MyType object = (MyType) resp.getEntity();

我不确定这是否回答了这个问题?(否则让我们知道)


推荐阅读