gpt4 book ai didi

Java 使用 List 重写构造函数 - "same erasure"错误

转载 作者:行者123 更新时间:2023-11-30 04:57:34 24 4
gpt4 key购买 nike

您好,我想重写自定义类 MyList 中的构造函数。

下面的代码可以编译,我收到“相同删除”错误。对于编译器List<CustomClass1>List<CustomClass2> 类型相同

有人可以建议我如何解决这个问题吗?我尝试使用 List<Object>并使用 instanceof但我无法解决这个问题,但没有成功

private static class MyList {

private int type;

public MyList (List<CustomClass1> custom1) {
type = 1;
}

public MyList (List<CustomClass2> custom2) {
type = 2;

}
}

最佳答案

因为所谓的类型删除 the generic type information is lost during compilation 。当类型信息被删除时,两者都会编译为public MyList(List l)。这就是 Java 的工作原理。泛型仅在编译时可用。

When a generic type is instantiated, the compiler translates those types by a technique called type erasure — a process where the compiler removes all information related to type parameters and type arguments within a class or method. Type erasure enables Java applications that use generics to maintain binary compatibility with Java libraries and applications that were created before generics.

关于Java 使用 List<CustomObjects> 重写构造函数 - "same erasure"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8042561/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com