我有Example1
和Example2
个类。我在每个班级中只添加了一个字段:
public class Example1 {
private String test1;
//setter and getter
}
public class Example2 {
private String test2;
//setter and getter
}
现在我需要将这两个类中的一个列表传递给方法。实际上我希望有一个方法可以接受来自这两个类的列表作为参数。我知道泛型类,但我不知道在这种情况下如何使用泛型类。谁能帮我? 提前谢谢。
更新: 例如,假设我有两个这样的方法:
public void workingMethod1(List<Example1> list){
}
public void workingMethod2(List<Example2> list){
}
事实上,我想结合这两种方法,并有一种方法。
答案 0 :(得分:0)
免责声明:
我会用两种方式来做这件事。一个是你要查看的两个类的公共类,另一个是重载你希望能够处理两个可能列表的方法。
我也不明白为什么这里需要仿制药。
接近1:
public class BaseClass{
// whatever
}
public class Example1 extends BaseClass{
// whatever
}
public class Example2 extends BaseClass {
// whatever
}
public void workingMethod(List<BaseClass> list){
// whatever
}
或者,另一条路线,如果两个类别没有多少共同之处,那就是重载workingMethod
方法:
public class Example1{
// whatever
}
public class Example2{
// whatever
}
public void workingMethod(List<Example1> list){
// do whatever to create the list needed to call the function you want
List<Double> someCrap = new List<Double>();
for(Example1 e1 : list){
someCrap.add(e1.getRandomCrap());
}
commonWorkingMethod(someCrap );
}
public void workingMethod(List<Example2> list){
// do whatever to create the list needed to call the function you want
List<Double> etc = new List<Double>();
// do more crap
commonWorkingMethod(etc);
}
public void commonWorkingMethod(List<Double> list){
// whatever
}
答案 1 :(得分:-2)
我已根据上面的Spis建议创建了一个非常基本的代码示例。它只是骨架代码,没有任何功能。它只显示了方法和两个类中泛型的概念。
package test;
import java.util.ArrayList;
import java.util.List;
public class Test {
public class Example1 {
}
public class Example2 {
}
public static void workingMethod1(List<? extends Object> list){
}
public static void workingMethod2(List<? extends Object> list){
}
public static void main(String[] args)
{
Test t = new Test();
Example1 eg1 = t.new Example1();
Example2 eg2 = t.new Example2();
List<Example1> list1 = new ArrayList<Example1>();
List<Example1> list2 = new ArrayList<Example1>();
workingMethod1(list1);
workingMethod2(list2);
}
}