gpt4 book ai didi

Java 比较器警告

转载 作者:行者123 更新时间:2023-12-01 08:11:46 24 4
gpt4 key购买 nike

我正在使用比较器按大小比较文件,但是当我尝试编译代码时,我收到警告:“java 使用未经检查或不安全的操作”。我将我的代码放入注释中,然后程序开始工作,所以我认为是 Comparator 类中排序的问题。这是我的代码:

public class size implements Comparator {

@Override
public int compare(Object o1, Object o2) {

long s1 = ((Class)o1).getSize();
long s2 = ((Class)o2).getSize();

if (s1 > s2){
return 1;
}
else if (s1 < s2){
return -1;
}
else {
return 0;
}
}
}

最佳答案

这两行包含不安全的强制转换:

long s1 = ((Class)o1).getSize();
long s2 = ((Class)o2).getSize();

不安全的转换是这个表达式:(Class)o1 ,您将对象 o1 转换为 Class,而无需事先检查 o1Class 的一个实例

如果您向该方法提供 Class 的实例,您的程序将运行良好。问题是您无法确保没有人使用不是类的对象调用您的方法。

您应该实现一个类型安全的比较器,前提是您的 java 版本比 1.4 更新。

public class size implements Comparator<Class> {   
@Override
public int compare(Class o1, Class o2) {
// compare the two class objects

关于Java 比较器警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16715120/

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