gpt4 book ai didi

java - 对最后一个参数的参数类型不精确的 varargs 方法进行非 varargs 调用;

转载 作者:行者123 更新时间:2023-12-03 05:11:36 26 4
gpt4 key购买 nike

我收到以下代码的警告:对最后一个参数的参数类型不精确的 varargs 方法进行非 varargs 调用;我该如何修复它?

 private static boolean checkImpled(Class interfaceClass, Class<?> forName) {

try {
if (!Modifier.isAbstract(forName.getModifiers())
&& !forName.isInterface()
&& interfaceClass.isAssignableFrom(forName)
&& !interfaceClass.equals(forName)
&& forName.getConstructor(null) != null) {
return true;
}
} catch (Exception e) {
// false
}

return false;
}

最佳答案

如果要获取不带参数的构造函数,应调用 forName.getConstructor(new Class[]{}) 而不是 forName.getConstructor(null)。这将消除您的警告。

因此,没有警告的代码可能如下所示:

private final static Class[] EMPTY_PARAM = new Class[]{};

private static boolean checkImpled(Class interfaceClass, Class<?> forName) {
try {
if (!Modifier.isAbstract(forName.getModifiers())
&& !forName.isInterface()
&& interfaceClass.isAssignableFrom(forName)
&& !interfaceClass.equals(forName)
&& forName.getConstructor(EMPTY_PARAM) != null) {
return true;
}
} catch (Exception e) {
// false
}

return false;
}

关于java - 对最后一个参数的参数类型不精确的 varargs 方法进行非 varargs 调用;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17905177/

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