데이터를 다른 XML 출력 형식 (다른 JAXB 클래스)에 쓰는 클래스를 작성했습니다. 지원되는 모든 유형은 열거 형 (SupportedTypes)에 저장됩니다. Enum은 해당 JAXB 클래스를 저장합니다. 열거 형은 다음과 같습니다열거 형에서 일반 형식에 대한 매핑
public enum Types {
/**
* Invoice from hospitals.
*/
Type1(...generatedClasses.invoice.hospital400.request.RequestType.class),
/**
* Invoice from hospital but with MediData's quality extensions. The
* response has no extensions.
*/
Type2(...generatedClasses.invoice.hospital400_QO.request.RequestType.class);
/**
* Class for request. represents the root element in corresponding xml.
*/
private Class<?> rType;
/**
*
* @param requestType
* class of corresponding request type
*/
private InvoiceTypes(final Class<?> requestType) {
this.requestType = requestType;
}
/**
* @return the requestType
*/
public final Class<?> getRequestType() {
return requestType;
}
}
내 문제는 JAXBElement 첨부와 같이 입력 제네릭 인스턴스를이 유형을 사용하는 방법입니다. typeEnum은 매개 변수로 주어지며 JAXBElement를 만들고 싶지만 분명히 작동하지 않습니다. 이제 막 갇혀 있습니다. 그러한 생성자 또는 메소드를 작성하는 방법. 다른 유형을 지원
는 ("ClassForTypes을") 클래스를 생성 가정하자 - 그들 (TheirClass, SpecialClass, MyClass에)와 함께 수행 무엇 이건 : 사전에
들으 해명
편집. API는 해당 클래스를 게시하지 않고 (매우 구체적 임) 대신 클래스의 유형 (TheirClass, SpecialClass, MyClass)을 저장하는 "TypeEnum"(TypeOne, TypeTwo, TypeThree)을 게시합니다. ClassForTypes의 생성시 지정된 TypeEnum을 사용하여 List<type saved in enum>
을 생성합니다. 어떻게 그런 ClassForTypes를 만들거나 그것의 생성자인가?
일부 예제 코드 (작동하지 않습니다) : 나는이 방법을 사용하려면 위에서 열거 형 :
public class Blub{
public Blub(Types type){
List<type.getRequestType> typedList = new ArrayList...
}
}
이 작동하지 않습니다. 그러나 목록의 유형은 컴파일 타임에 알려져 있습니다 (열거 형에 저장되어 있기 때문에?). 정적으로 형식을 저장하고 형식이 지정된 일반을 가져 오는 데 사용할 수있는 방법이 있습니까? api 사용자가 열거 형을 통해 전달되는 "지원되는 유형"에 대해서만 알고 있어야하는 단일 요청 유형에 대해 알고 싶어하지 않습니다.
죄송합니다. 아직 달성하고자하는 것이 분명하지 않습니다. 작동하지 않는 코드를 게시하면 클릭하게 될 것입니다. 내가했던 것처럼 코드를 최소한으로 줄이십시오. – OldCurmudgeon