我是Web服务方面的专家。我写了一个通用类作为值持有者,如下所示:

public class SearchResult<T> {
    private List<T> resultSet;
}


然后,我编写了一个Web服务方法:

public SearchResult<Book> getSearchResult(){
    ...
}


当我使用maven-jaxws-plugin生成客户端文件时,我发现通用类型信息不见了。他们看起来像:

public class SearchResult {
   private List<Object> resultSet;
}

public SearchResult getSearchResult(){
    ...
}


我的问题是,jaxws是否可以保留此类通用类型信息?我尝试使用List作为返回类型,它确实起作用。
在此先感谢您的帮助。

最佳答案

如果客户端代码是使用源代码以外的任何内容生成的,则可能不包含通用信息。编译使用泛型的代码后,由于type erasure,有关泛型的信息会丢失。

关于java - 返回Web服务中的泛型类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1878494/

10-10 12:24