Java-获取当前泛型类

Java-获取当前泛型类,java,generics,reflection,Java,Generics,Reflection,我看过很多关于这个论点的帖子,但这是我第一次使用泛型/反射。我想创建一些方法来包装JAX-WS调用(doPost、doGet等) 为此,JAX-WS有如下方法: Integer resp = client.target(url).request().post(Entity.entity(user, MediaType.APPLICATION_JSON), Integer.class); GenericPost<Integer> postInteger = GenericPost&l

我看过很多关于这个论点的帖子,但这是我第一次使用泛型/反射。我想创建一些方法来包装JAX-WS调用(doPost、doGet等)

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

Integer resp = client.target(url).request().post(Entity.entity(user, MediaType.APPLICATION_JSON), Integer.class);
GenericPost<Integer> postInteger = GenericPost<Integer>.doPost("something", arg);
GenericPost<String> postInteger = GenericPost<String>.doPost("something", arg);
Integer postInteger = GenericPost.doPost("something", arg, Integer.class);
String postString = GenericPost.doPost("something", arg, String.class);
因此,它希望将“返回类型”作为最后一个参数

为此,我创建了一个类来包装post mehod:

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;
    }
}
公共类GenericPost{
公共静态I doPost(字符串名称、对象实体){
字符串url=Constants.SERVICE_HOST_NAME+method+“/”;
Client Client=ClientBuilder.newClient();
I resp=client.target(url.request().post(Entity.Entity(Entity,MediaType.APPLICATION_JSON))/*我怎么知道这里我想要I.class?*/);
返回响应;
}
}
正如我在代码中所描述的,我如何告诉方法最后一个参数是i(泛型)类

我会这样使用这个方法:

Integer resp = client.target(url).request().post(Entity.entity(user, MediaType.APPLICATION_JSON), Integer.class);
GenericPost<Integer> postInteger = GenericPost<Integer>.doPost("something", arg);
GenericPost<String> postInteger = GenericPost<String>.doPost("something", arg);
Integer postInteger = GenericPost.doPost("something", arg, Integer.class);
String postString = GenericPost.doPost("something", arg, String.class);
GenericPost postineger=GenericPost.doPost(“某物”,arg);
GenericPost postineger=GenericPost.doPost(“某物”,arg);

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

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;
    }
}

这就是我所怀疑的。。。实际上,该方法包装在另一个类中(我使用的是JavaFX服务)。所以我通过了这个论证,现在所有的都在我的另一个类中工作:)