繁体   English   中英

Java-获取当前的通用类

[英]Java - Get current generic class

我已经看到很多关于此论点的文章,但这是我第一次使用泛型/反射。 我想创建一些包装JAX-WS调用的方法(doPost,doGet等)

为此,JAX-WS具有如下方法:

Integer resp = client.target(url).request().post(Entity.entity(user, MediaType.APPLICATION_JSON), Integer.class);

因此,它希望作为最后一个参数,即“返回类型”。

为此,我创建了一个包装后方法的类:

public class GenericPost<I> {
    public static I doPost(String name, Object entity) {
        String url = Constants.SERVICE_HOST_NAME + method + "/";
        Client client = ClientBuilder.newClient();  
        I resp = client.target(url).request().post(Entity.entity(entity, MediaType.APPLICATION_JSON), /* How i can tell that here i want i.class ?*/);

    return resp;
    }
}

如我在代码中所述,我如何告诉方法最后一个参数是I(泛型)类?

我将使用这种方法:

GenericPost<Integer> postInteger = GenericPost<Integer>.doPost("something", arg);
GenericPost<String> postInteger = GenericPost<String>.doPost("something", arg);

在非泛型类中创建泛型方法,并将Class<T>作为参数传递:

public class GenericPost {
    public static <T> T doPost(String name, Object entity, Class<T> clazz) {
        String url = Constants.SERVICE_HOST_NAME + method + "/";
        Client client = ClientBuilder.newClient();  
        T resp = client.target(url).request().post(Entity.entity(entity, MediaType.APPLICATION_JSON), clazz);
        return resp;
    }
}

并像这样使用它:

Integer postInteger = GenericPost.doPost("something", arg, Integer.class);
String postString = GenericPost.doPost("something", arg, String.class);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM