我正在尝试执行以下操作:
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.
}
}
现在,要将Generic用于ArrayList,例如ArrayList items = new ArrayList();
但是我不能这样做,因为return参数可以是任何一种类型。在这种情况下,如何将泛型用于方法返回类型?MyClass具有方法“ Query”,而ClassA和ClassB是MyClass的内部类。这个想法是在根级别的类上编写一个查询实现,该实现将接受queryName,触发查询并返回与查询相关的内部类对象的实例(列表/表)。上面的代码仅表示逻辑表示。
作为一般性回答,由于您的问题尚不清楚您要做什么,因此我将解释标题的问题。如果要将泛型作为返回类型,则必须以这种方式进行定义:
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] 删除。
我来说两句