相关疑难解决方法(0)

Java中的类型擦除和重载:为什么这样做?

我有以下代码:

public class Pair< T, U > {
    public T first;
    public U second;
}
public class Test {
    public int method( Pair< Integer, Integer > pair ) {
        return 0;
    }
    public double method( Pair< Double, Double > pair ) {
        return 1.0;
    }
}
Run Code Online (Sandbox Code Playgroud)

这实际上编译和工作就像人们期望的那样.但是如果返回类型相同,则不会编译,预期的"名称冲突:方法(对)和方法(对)具有相同的擦除"

鉴于返回类型不是方法签名的一部分,这种重载怎么可能?

java overloading type-erasure

18
推荐指数
2
解决办法
1906
查看次数

有没有合理的理由隐藏静态方法?

可能重复:
为什么Java不允许覆盖静态方法?

有没有合理的理由为什么人们希望派生类重写隐藏static基类的方法?

java static method-hiding

6
推荐指数
1
解决办法
742
查看次数

标签 统计

java ×2

method-hiding ×1

overloading ×1

static ×1

type-erasure ×1