gpt4 book ai didi

java - 确保通用参数不是原始参数

转载 作者:行者123 更新时间:2023-11-29 10:10:52 32 4
gpt4 key购买 nike

我正在编写一些代码,其中我想要一个通用参数,但它不能是原始参数。 有没有办法确保函数的通用参数不是原始参数?

例如,如果我有以下函数检查参数是否为整数(使用 Integer 因为 int 没有 .getClass() ).:

public static final <E> int len(E e) {
Integer i = 0;
if (e.getClass() == i.getClass()) {
throw new IllegalArgumentException();
}
return 0;
}

如果我想对每个基元继续执行,这个函数会很长(没有双关语意)。从本质上讲,我可以防止将原始对象传递给具有泛型参数的函数吗?

最佳答案

绝不是原始的。如果传入一个原语,它将被自动装箱到适当的包装类,例如 int -> Integer


关于你的声明 int doesn't have .getClass()...

其实int确实有一个类:int.class,不过主要是反射api用来表示方法参数类型或 int 的返回类型。

关于java - 确保通用参数不是原始参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35859933/

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