gpt4 book ai didi

java - 错误的符号类型,代码不可编译

转载 作者:行者123 更新时间:2023-12-02 10:59:53 24 4
gpt4 key购买 nike

import javax.sound.sampled.*;
import java.io.*;
import javax.swing.*;

class muse{
// this plays music files

Thread.UncaughtExceptionHandler h = new Thread.UncaughtExceptionHandler() {
public void uncaughtException(Thread music, Throwable ex) {
System.out.println("Uncaught exception: " + ex);
}};

String dian="yun.wav";

static void mate(String dian)
{
Thread music = new Thread(dian)
{
public void run(String dian)
{
try
{
Clip clip= null;
File in = new File(dian);
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(in);
clip = AudioSystem.getClip();
clip.open(audioInputStream);
clip.start();
JOptionPane.showMessageDialog(null, "Click OK to stop music");
clip.drain();
}
catch (UnsupportedAudioFileException | IOException | LineUnavailableException ex)
{
ex.printStackTrace();
}
throw new RuntimeException();
}
};
}

public static void main(String args[]) throws InterruptedException {
music.start();
}

}

我创建了这段代码,以便可以在另一个.java文件中输入歌曲文件的名称,但是即使netbeans中没有红色错误,该代码也最终无法编译。
如果我删除了静态void mate(String dian){}
该代码工作正常,任何人都可以帮助解释为什么它不编译,或者允许该代码从另一个.java文件运行的替代方法

最佳答案

在静态方法music中声明的mate对象在本地声明,在您的main方法中不可访问。

尝试修改您的示例:

static Thread mate(String diane) {
return new Thread(dian){
...
}

然后在你的主要方法
public static void main(String args[]) throws InterruptedException {
Thread music = mate("filename");
music.start();
}

关于java - 错误的符号类型,代码不可编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45341220/

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