[英]Java same erasure compile time error
我在同一个类中有两种方法:
public static Set<Type A> valueOf (Set<Type B>)
{}
public static Set<Type A> valueOf (Set<Type B>)
{}
我收到相同的擦除编译时间错误。 我该如何解决?
您的方法完全相同。 编译器将不知道使用哪个。
另外,如果您以某种方式
public static Set<Type A> valueOf (Set<Type A>)
{}
public static Set<Type B> valueOf (Set<Type B>)
{}
这两种方法也是相同的,类型标识符( A
和B
)被编译器擦除,因此它们再次具有相同的签名。
要理解发生了什么,请用Object
替换每个<GenericSomething>
,因为这是编译器看到的-这就是所谓的类型擦除 。 简而言之,两种方法都具有相同的签名,即
public static Set<Object> valueOf (Set<Object>)
{}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.