gpt4 book ai didi

Java错误: cannot find symbol even if the .类文件都在同一目录中

转载 作者:行者123 更新时间:2023-12-02 06:48:42 25 4
gpt4 key购买 nike

我定义了一个 TestoMessaggi 类和一个名为 Messaggio 的子类

//esercizio 3.3 del libro

import javax.swing.JOptionPane;

public class TestoMessaggio {
private String code;
private String testo;

public TestoMessaggio(String c, String t) {
code = c;
testo = t;
}

public static TestoMessaggio creaTestoMessaggio() {
String co = JOptionPane.showInputDialog(null,"inserisci codice");
String te = JOptionPane.showInputDialog(null,"inserisci testo");
TestoMessaggio t1 = new TestoMessaggio(co,te);
return t1;
}

public String getCode() {
return code;
}

public String getTesto() {
return testo;
}

}

这是 Messaggio.class

    public class Messaggio extends TestoMessaggio {

private String mittente;
private String destinatario;

public Messaggio(String c, String t,String m, String d) {
super(c,t);
mittente = m;
destinatario = d;
}

public String getDestinatario() {
return destinatario;
}

public String getMittente() {
return mittente;
}

public void setDestinatario(String d) {
destinatario = d;
}

public static void stampaMessaggio(Messaggio m) {
System.out.println("code : "+m.getCode());
System.out.println("testo : "+m.getTesto());
System.out.println("destinatario : " +m.getDestinatario());
System.out.println("mittente : " +m.getMittente());
}

}

我创建了一个程序来测试这两个类:这是代码

//esercizio 3.5 del libro

import javax.swing.JOptionPane;


public class Esempio3_5 {

public static String leggiNumero() {
String num = JOptionPane.showInputDialog(null,"inserisci numero");
return num;
}

public static void main(String[] args) {

String m = leggiNumero();
TestoMessaggio t1 = creaTestoMessaggio(); // non trova il metodo
String d = leggiNumero();
Messaggio mex = new Messaggio(null,null, m,d);
stampaMessaggio(mex); // nn trova il metodo
}
}

当我尝试编译时出现此错误

Esempio3_5.java:16: error: cannot find symbol
TestoMessaggio t1 = creaTestoMessaggio(); // non trova il metodo
^
symbol: method creaTestoMessaggio()
location: class Esempio3_5
Esempio3_5.java:19: error: cannot find symbol
stampaMessaggio(mex); // nn trova il metodo
^

符号:方法 stampaMessaggio(Messaggio) 位置:Esempio3_5 类

所有 3 个文件都位于同一目录中。有什么建议么?提前致谢

最佳答案

您需要访问类名上的静态方法:

TestoMessaggio t1 = TestoMessaggio.creaTestoMessaggio();
<小时/>

您使用的代码:

TestoMessaggio t1 = creaTestoMessaggio();

相当于:

TestoMessaggio t1 = Esempio3_5.creaTestoMessaggio();

因为,您在静态上下文中使用它。现在,显然您在 Esempio3_5 类中没有该方法,因此它失败了。

<小时/>

同样,将另一行更改为:

Messaggio.stampaMessaggio(mex);

但是在我看来,您应该重写 Messaggio 中的 toString 方法,而不是提供 static stampaMessaggio() 方法。

关于Java错误: cannot find symbol even if the .类文件都在同一目录中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18303297/

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