0
我想要做以下事情。
1)我在WSDL上運行wsimport來生成Java代碼。
2)wsimport生成一個表示WSDL接口的Java接口。
3)我想用反射來發現接口中方法的參數類和返回類型。
下面顯示的是wsimport生成的界面。如何使用Java反射獲取javax.xml.ws.Holder中的實際類型?
public interface Sample2 {
@WebMethod(action = "http://www.example.org/sample2/getMeaning2")
public void getMeaning2(
@WebParam(name = "getMeaning21", targetNamespace = "http://www.example.org/sample2/", partName = "parameters1")
GetMeaning21 parameters1,
@WebParam(name = "getMeaning2", targetNamespace = "http://www.example.org/sample2/", partName = "parameters2")
GetMeaning2 parameters2,
@WebParam(name = "getMeaningResponse21", targetNamespace = "http://www.example.org/sample2/", mode = WebParam.Mode.OUT, partName = "parameters3")
Holder<GetMeaningResponse21> parameters3,
@WebParam(name = "getMeaningResponse2", targetNamespace = "http://www.example.org/sample2/", mode = WebParam.Mode.OUT, partName = "parameters4")
Holder<GetMeaningResponse2> parameters4);
}
我的問題是特定於方法getMeaning2的第二個和第三個參數。 我能夠使用反射api獲取方法的參數。 Method.getParameterTypes(注意,這實際上是一個實例方法)。
Method declaredMethods[] = Sample2.class.getDeclaredMethods();
method = declaredMethods[0];
Class<?>[] parameterTypes = method.getParameterTypes();
該數組的第二個和第三個元素的類型爲javax.xml.ws.Holder類。
我的問題是如何從參數3和參數4中獲取實際類型(在本例中爲GetMeaningResponse21.class和GetMeaningResponse2.class)?