gpt4 book ai didi

java - Java 泛型中的精确类型匹配

转载 作者:行者123 更新时间:2023-11-29 07:27:35 25 4
gpt4 key购买 nike

以下 Java 代码是有效的 - 没有编译或运行时错误。

public class Test {
public static void main(String[] args) {
System.out.println(
new Comparator<>("hello", 5).areEqual()
);
}

private static class Comparator<T> {

private final T left;
private final T right;

public Comparator(T left, T right) {
this.left = left;
this.right = right;
}

public boolean areEqual() {
return left.equals(right);
}
}
}

我希望值 "hello"5 被转换为 Object,这是一个共同的父级。

有没有一种方法可以通过传递非相同类型的对象导致编译时错误的方式来编写类? IE。不允许将对象传递给共同的祖先。

最佳答案

不是真的,不是。

因为您的通用类型是未绑定(bind)的,所以只有一个共同的祖先:Object - 正如您正确推测的那样。

在这种情况下,您唯一实际可以做的就是确保为要通过此方法传递的对象正确定义 equals。您还希望处理将 null 作为参数传递的情况。

关于java - Java 泛型中的精确类型匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48723541/

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