다음을 시도하고 있습니다.
Class MyClass{
Public ArrayList Query(String queryName ) {
ArrayList items = new ArrayList();
if (queryName =="query1") {
ClassA objA1 = new ClassA();
ClassA objA2 = new ClassA();
....//logic to populate the object
items.add( objA1 );
items.add( objA2 );
}
elseif (queryName =="query1") {
ClassB objB1 = new ClassB();
ClassB objB2 = new ClassB();
....//logic to populate the object
items.add( objB1 );
items.add( objB2 );
}
return items.
}
}
이제 ArrayList에 Generic을 사용하려면 예를 들어 ArrayList items = new ArrayList ();
그러나 반환 매개 변수는 한 가지 유형이 될 수 있기 때문에 그렇게 할 수 없습니다. 이 경우 메서드 반환 유형에 제네릭을 어떻게 사용할 수 있습니까? MyClass에는 'Query'메소드가 있으며 ClassA와 ClassB는 MyClass의 내부 클래스입니다. 아이디어는 queryName을 받아들이고 쿼리를 트리거하고 쿼리와 관련된 내부 클래스 개체의 인스턴스 (List / Table)를 반환하는 루트 수준 클래스에서 쿼리 구현을 작성하는 것입니다. 위의 코드는 논리적 표현만을 나타냅니다.
일반적인 대답으로, 질문이 무엇을 하려는지 약간 불분명하므로 제목의 질문에 대해 설명하겠습니다. 제네릭을 반환 유형으로 원하면 다음과 같이 정의해야합니다.
public static <T> ArrayList<T> query(final T object) {
final ArrayList<T> ts = new ArrayList<>();
ts.add(object);
return ts;
}
이제이 메서드를 다음과 같이 호출 할 수 있습니다.
final ArrayList<ClassA> query = query(new ClassA());
또는
final ArrayList<ClassB> query = query(new CLassB());
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다