java:命令提示符出现编译错误

hpxqektj  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(308)
import java.util.*;

public class Lab8 {
          public static void main(String str[]) {
                    List list=new ArrayList();
                    list.add("sri");
                    list.add("Nivas");
                    list.add("Dande");
                    list.add("JLC");
                    System.out.println(list);

                   Iterator it=list.iterator();
                   while(it.hasNext()) {
                               Object obj=it.next();
                               System.out.println(obj);
                               if(obj.equals("JLC")) 
                               it.remove();
                    }
                    System.out.println(list);
          }
}

问题:

在用ide编译上面的代码时,它工作得很好,但是当我编译它时
使用命令提示符,编译器抛出一个错误,如下所示:

error: incompatible types
        Object obj=it.next();
                      ^
  required: Object
  found:    java.lang.Object

为什么我在命令提示符下而不是ide上出现这个错误?

cbjzeqam

cbjzeqam1#

我试着在我的系统上运行你的代码,但在我的命令提示符(windows)中出现了一个不同的错误。

Note: Lab8.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

嗯,也许我们的系统处理这类问题的方式有点不同,但是代码的问题是缺少泛型。您正在将字符串对象添加到列表中,因此应将其指定为字符串对象。不需要特别说明,您可以添加string、int和其他内容,并且您对列表中的对象执行的后续操作并不总是可以保证正常工作(在本例中,没有太大问题,因为您只是将内容打印出来,但尽管如此,jvm仍然会在编译代码之前警告您这一点)。
干得好。注意使用尖括号来更严格地指定类型(在java这样的静态类型语言中是一个很好的实践)。

import java.util.ArrayList;
import java.util.Iterator;

public class Lab8 {
    public static void main(String str[]) {
        ArrayList<String> list=new ArrayList<String>();
        list.add("sri");
        list.add("Nivas");
        list.add("Dande");
        list.add("JLC");
        System.out.println(list);

        Iterator<String> it=list.iterator();
        while(it.hasNext()) {
            Object obj=it.next();
            System.out.println(obj);
            if(obj.equals("JLC")) 
                it.remove();
        }
        System.out.println(list);
    }
}

eclipse允许构建和运行旧代码,但是尝试在命令行中编译会显示编译警告。为什么不同?好吧,eclipse假设您已经阅读了它的编译警告(代码左侧的ide中会显示这些警告,并带有一个小灯泡符号),因此如果您愿意的话,它允许您构建和运行程序。命令行中没有这样的特性,因此它们必须给您一些明确的警告消息。
在任何情况下,我希望你没有任何更多的错误使用我提供的代码。如果你仍然有错误,那么也许这是另一个问题。
希望这有帮助。

相关问题