gpt4 book ai didi

java - 泛型如何允许在编译时对类型转换错误进行强类型检查

转载 作者:行者123 更新时间:2023-12-01 14:07:33 26 4
gpt4 key购买 nike

我一直在尝试理解类型检查和类型转换。我已经理解使用泛型对集合进行类型转换的概念,但是泛型在哪里允许对集合以外的非法类型转换进行强类型检查。有人可以给我提供一个示例,其中在编译时出现类型转换错误并且泛型可以有效地处理此错误。

提前致谢

最佳答案

以这个案例为例:

public class Test {
public static void main(String[] args) {
Pair<Integer, Integer> p1 = new Pair<Integer, Integer>(3, 5);
Pair<String, Integer> p2 = (Pair<String, Integer>) p1;

Pair p = new Pair<Integer, Integer>(3, 5);
Pair<String, Integer> p3 = (Pair<String, Integer>) p;
}

static class Pair<A, B> {
A first;
B second;

public Pair(A a, B b) {
first = a;
second = b;
}
}
}

由于泛型,Pair<String, Integer> p2 = (Pair<String, Integer>) p1会引发编译错误。

但是自从 p不使用泛型,p3 = (Pair<String, Integer>) p 不会抛出编译时错误步骤,这可能会在以后引起问题。

关于java - 泛型如何允许在编译时对类型转换错误进行强类型检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18781672/

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