我可以通过将它作为参数传递给java中的方法来决定方法的返回类型吗?

时间:2018-03-19 14:01:12

标签: java generics

我正在处理一个应用程序,在使用Jersy编写一个rest客户端时,我想要一个方法从该方法返回不同类的对象。我可以完成这个方法,将Object作为方法的返回类型,但我在寻找是否可以使用泛型,所以我不必担心类型安全。

到目前为止,我有以下代码,但我无法继续使用此代码:

public <T> T getContent(final String resourceUrl, Class <T> cls) {
        //"http://localhost:8080/RESTfulExample/rest/json/metallica/get"
        final Client client = new Client(); final WebResource webResource = client.resource(resourceUrl);
        final ClientResponse response = webResource.accept("application/json").get(ClientResponse.class);

        if (response.getStatus() != 200)
        {
            throw new RuntimeException("Failed : HTTP error code : " + response.getStatus());
        }

        final T output = response.getEntity(cls.getClass());

        System.out.println("Output from Server .... \n");

        //get content
        //return T
        return output;

}

1 个答案:

答案 0 :(得分:0)

你正在做的是对的,从泛型的角度来看,你可以简单地做一些像

这样的事情
<T> T methodName(Class<T> var);

然后在调用它时传递预期的类型。

methodName(Foo.class); // will return an object of the type foo;
显然,您需要确保在方法中处理类型转换,但看起来您已经完成了此操作

了解更多信息,请查看此链接 enter image description here