java - 编译时"Unchecked or unsafe operations"错误

标签 java compiler-warnings

<分区>

我是 Java 编程的新手,我正在尝试将文件列表添加到一个简陋的小型媒体播放器。看来我已经成功地实现了我想要的:

public class MusicPlayerGUI
    implements ActionListener
{
    private static JFileChooser fileChooser = new JFileChooser(System.getProperty("user.dir"));

    private JList tracklist;
    private MusicPlayer player;
    private FileOrganizer organizer;
    private List<String> tracks;
    private JFrame frame;

public MusicPlayerGUI()
{
    player = new MusicPlayer();
    organizer = new FileOrganizer();
    tracks = organizer.listAllFiles();
    makeFrame();
}

//Some methods omitted

public void play()
{
    int fileToPlay = tracklist.getSelectedIndex();
    String filenameToPlay = organizer.getFile(fileToPlay);
    player.play(filenameToPlay);
}

public void setupList()
{
    tracks = organizer.listAllFiles();
    String[] fileList = listAllTracks(tracks);
    tracklist.setListData(fileList);
}

public String[] listAllTracks(List<String> tracks)
{
    int numTracks = tracks.size();
    String[] fileList = new String[numTracks];
    for(int i = 0; i < numTracks; i++) {
        String field = tracks.get(i).toString();

        fileList[i] = field;
    }

    return fileList;
}

但是当我编译时,即使它确实编译了,它也会给我一个错误说明:

[pathname]/classname.java uses unchecked or unsafe operations. Recompile with Xlint:unchecked for details

我的播放器中的所有内容都正常,除了它无法播放文件,所以我认为我收到的编译器警告与文件无法播放之间可能存在联系。任何人都可以发现我出错的地方吗?

最佳答案

当您将某物的原始版本分配给具有泛型类型参数的版本时,就会发生这种情况,如下所示:

List<String> list = new ArrayList(); // Note missing <String>

所以我的猜测是 listAllFiles FileOrganizer的方法| (不管是什么)返回 List , 不是 List<String> . 编辑:或user1631616可能有spotted it使用 JList .

关于java - 编译时"Unchecked or unsafe operations"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21118831/

相关文章:

java - 如何反序列化以 Jackson 中的数组开头的 JSON 文件 - 仅使用注释?

java - 如何添加 15 分钟时间并处理溢出问题?

java - 无法使用文件的 URL

java - 与资源一起部署war文件

java - 在 JUnit 测试中抑制编译器警告

java - 在 property.setProperty ("mail.smtp.host",host) 中出现语法错误;

c - 为什么 gcc 和 clang 不警告写入地址 0?

c++ - 是否存在 static_warning?

C++警告以检测引用字段自身的初始化

java - Java编译器不断说 “error while writing className: className.class (Permission denied)”