所以,我在这个班级工作
Public class Java2MySql {
public static void main(String[] args) {
Java2MySql j = new Java2MySql();
...
}
public static String selectValue() {
BlackBox blackBox = new BlackBox();
...
switch(case) {
case "C00":
caixaNegre.waste();
break;
}
}
另一个班级
public class CaixaNegre{
public static String waste(){
...
}
}
我认为这是正确的,NetBeans没有显示错误,但是一旦我尝试在终端中运行它以使用我的数据库对其进行测试,它会显示以下消息:
Java2MySql.java:50: error: cannot find symbol
CaixaNegre caixaNegre = new CaixaNegre();
^
symbol: class CaixaNegre
location: class Java2MySql
为什么?
答案 0 :(得分:1)
类方法和对象方法之间存在差异。对象是类的实例。因此,为了能够调用对象方法,首先需要该类的实例(对象)。
您的waste()方法是一个静态方法,这意味着它成为一个类方法。要调用类方法,请使用类的全名(区分大小写)+方法名称。
在你的情况下,你应该使用:
CaixaNegre.waste();
而不是
caixaNegre.waste();
记住:一切都是静态的,属于班级。所有不属于的东西都属于班级的一个实例。
但是,做一个类的对象实例,而不是让一切都是静态的,这是一个好习惯。这样,您就可以以面向对象的方式进行编程。
我不确定你在做什么,就像在你的错误中一样,它声明你正在尝试制作类CaixaNegre的实例。在这种情况下,您必须删除方法浪费中的static关键字。
至于你的错误: CaixaNegre类可能在不同的包中吗?如果是的话,你导入了吗?