gpt4 book ai didi

java - 动态调度、重载和泛型

转载 作者:行者123 更新时间:2023-11-30 06:08:34 25 4
gpt4 key购买 nike

使用此类:

public class Fallible<T> {

private final Exception exception;
private final T value;

public Fallible(final T value) {
this.value = value;
this.exception = null;
}

public Fallible(final Exception exception) {
this.value = null;
this.exception = exception;
}

}

我可以安全地假设 value永远不会包含 Exception 对象吗?

最佳答案

不,你不能做出这样的假设。例如:

Object obj = new Exception();
Fallible f = new Fallible(obj);

将调用通用构造函数。

检查这一点的唯一方法是使用 instanceof 显式检查 value 的类型:

public Fallible(final T value) {
if (value instanceof Exception) {
this.exception = (Exception) value;
this.value = null;
} else {
this.value = value;
this.exception = null;
}
}

关于java - 动态调度、重载和泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39638811/

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