如何使用-Xlint:unchecked重新编译?

9

我在BlueJ/Java中经常看到这个消息。

http://cache.gyazo.com/19c325e77bbc120892d1035dcfda5377.png

我知道在StackOverflow上已经有几个类似的问题,但是对于像我这样的Java新手来说,没有一个答案足够具体。例如,其中一个答案说要在javac命令行中添加一些内容,而我不知道那是什么。所以,请使用这些信息了解您在与我交流时必须非常具体。抱歉。谢谢!


在命令行中尝试这个:javac -Xlint:unchecked MyProgram.java。另外,查看帮助请使用javac -X - RanRag
@RanRag 就像我说的那样,我不知道什么是命令行。 - viggom555
我查看了BlueJ/Java文档,但我没有找到在BlueJ IDE中指定命令行选项的方法。老实说,我建议学习命令行Java。或者学习其他IDE(如NetBeans或Eclipse)。这两个IDE都比BlueJ给你更多的控制权... 在我看来... - paulsm4
facepalm - 为了简洁起见,您可能需要谷歌一些东西。 - user845279
@user845279 我已经尝试了,但是就像我说的那样,我不理解Java行话,不知道相关文章在谈论什么。 - viggom555
在Ant中,请将其放在此处:<target name="-build-widgetset-1" if="widgetset"> <java classname="com.google.gwt.dev.Compiler" failonerror="no" fork="yes"> <arg value="-war"/> ... <arg value="-Xlint:unchecked" /> - joninx
3个回答

6

在存放源代码的目录下打开命令提示符。然后输入javac -Xlint:unchecked *.java


你安装了Java JDK吗?请访问http://www.oracle.com/technetwork/java/javase/downloads/index.html。 - Epicblood
另外,在 *.java 前应该有一个空格。 - Epicblood
您需要将Java二进制文件夹添加到环境路径中,请参见此链接 - user845279
好的,我添加了这些标识符并删除了强制转换,但我仍然收到相同的消息。这是一个测试类。http://cache.gyazo.com/eb88614b140a88b16579f01fb5e099d6.png在这个类中,我没有收到消息,但它无法编译。另外,为什么我不能将ArrayList强制转换为int? - viggom555
那么问题可能不在于ArrayList。你上一个问题的意思不太清楚。如果你想对int值做同样的操作,你需要这样做:ArrayList<Integer> list = new ArrayList<Integer>();list.add(5);int a = list.get(0); 你应该通过展示更多的代码来提出另一个问题。这已经不是Bluej的问题了。 - user845279
显示剩余6条评论

4
请参考BlueJ的常见问题解答,其中有确切的答案。 编辑: 抱歉让您费心了。以下是Windows系统的解决方案:进入BlueJ安装目录,打开lib\bluej.defs文件。然后找到bluej.windows.vm.args部分,并添加其他用户提供的值。
所以你需要添加的内容是:
bluej.windows.vm.args=-Xlint:unchecked

如果你真的想了解Java,我建议你听取paulsm4的建议并开始从命令行学习。这是我能做的最好的事情。


那看起来很复杂,由于我对Java不是很了解,所以我无法真正理解写该条目时使用的行话。 - viggom555
很不幸,这是正确的答案。如果有包,你得到的命令行答案并不会更容易。 - user845279
你能澄清一下那个注释的结尾吗?我不明白你的意思。另外,如果你告诉我该怎么做,我会给你正确的答案。 - viggom555
1
@viggom555 我相信Joris Bolsens的答案是正确的,但我为你感到难过。 - user845279
谢谢,但我已经添加了内容,仍然收到该消息。回想一下,它说要添加“详细信息”。那是什么意思?我在哪里可以找到这些详细信息? - viggom555
显示剩余5条评论

3

@viggom555:

下面是完整的命令行示例:

1)创建文件 "ATest.java"(例如:notepad ATest.java):

import java.util.*;

public class ATest {

  public static void main (String[] args) {
    ArrayList<String> test = new ArrayList<String>();
    System.out.println ("My array has " + test.size() + " items");
    test.add ("abc");
    System.out.println ("My array has " + test.size() + " items");
  }

}

2) 编译(示例:“javac -Xlint:unchecked ATest.java”;在此示例中,您不需要“XLint”,我只是向您展示如果需要的话它应该放在哪里):

C:\temp>javac -Xlint:unchecked ATest.java

3) 运行测试程序:

C:\temp>java ATest
My array has 0 items
My array has 1 items

我希望这有所帮助.. PSM

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接