我制作了一个非常简单的泛型类,它存储了 2 个相同类型的变量,如下所示:
public MyClass<T>
{
private T v1;
private T v2;
public MyClass(T v1, T v2)
{
this.v1 = v1;
this.v2 = v2;
{
}
现在我需要通过另一个非泛型类来实现一个方法,该方法将不同类型的 Object 列表作为输入,并给出MyClass<T>
具有相同类型的对的列表作为输出。
我的问题是,在不知道我正在使用什么类型的情况下,我无法找到一种方法来制作这样的东西,我如何MyClass
每次都实例化正确的类型?我已经走了这么远,没有从日食中得到错误
public List<MyClass<?>> match()
{
List<MyClass<?>> list = new ArrayList<MyClass<?>>();
for(Object obj : this.list)//not the same list it's a parameter of the
{ //non-generic class
for(Object obj2 : this.list)
{
if(!(obj == obj2)&&obj.getClass().equals(obj2.getClass()))
{
MyClass<Object> couple = new MyClass<Object>(obj, obj2);
insertCouple(couple, list);
}
}
}
insertCouple
是检查这对夫妇是否已经在输出列表中的私有方法,我尝试实现Comparable
但MyClass
使编码更加复杂。
如您所见,我被迫保持通用,但我可以看到它存在问题。如果没有在运行时查找和填充特定类型的方法,我如何编写它以使其成为可能通过泛型?