我有以下代码:
public class My_program {
class dbConnect {
public dbConnect();
public void connect_to_db(String connect_string) {
Class.forName(...);
...
}
}
public static void main(String[] args) {
String connect_string = "jdbc...";
dbConnect db = new dbConnect();
db.connect_to_db(connect_string)
}
}
当我尝试编译它时,会出现以下错误:
error: non-static variable this cannot be referenced from a static context
因此,我尝试使dbConnect静态如下:静态类dbConnect,它工作正常,但java正在生成额外的
。class
文件:我的\u程序$dbConnect。我不想要的类。
那么如何才能拥有一个
. class
文件并让代码正常工作。
你不能,额外的。将生成类文件。在java中,每个类在编译成字节码时都会生成一个。类文件。因此,dbConnect类将生成一个。类文件。
注意:第一次编译失败,这就是为什么它没有生成父$dbconnect。类文件
如果你只想要1个。类文件,然后删除内部类并将逻辑放入父类中。
一种方式取决于您的要求:
public class My_program {
My_program() { }
public void connect_to_db(String connect_string) {
Class.forName(...);
......
}
public static void main(String[] args) {
String connect_string = "jdbc......";
My_program db = new My_program();
db.connect_to_db(connect_string)
}
}
我在阅读Kathy and Bert SCJP1.6时遇到了以下代码: 虽然是在跟踪变量的主题下,但我无法理解如何在main()方法(static)中引用非静态变量myBar?
我尝试使用网络豆IDE在java中创建一个简单的类。每当我试图执行这个命令时,它都会发出这样的警告。从静态上下文引用的非静态变量“。谁能告诉我为什么会发生这种情况以及如何解决它。提前感恩节。
问题内容: 我是Java新手,我正在尝试通过递归函数部署斐波那契跟踪,然后计算运行时间。这是我设法编写的代码: 问题是,当我尝试将其转换为字节码时,出现以下错误: 我想知道是什么问题?! 问题答案: 更改 至 并使该方法静态。 或者,改变 至
错误来自此行板状态 addme = 新板状态(); 由于某种原因,它所指向的非静态变量是“新”的。我不清楚如何修复这个错误,因为new不应该是一个变量,也不是。 查看stackoverflow记录,该错误通常来自非静态方法,通常通过将该方法设为静态或完全绕过该方法来解决。T 下面的代码是为了引用这个语句前后发生的事情。 }……
问题内容: 在UNI atm上做Java课程,我遇到了骰子问题。 我有以下内容: 编译时,我得到:无法从静态上下文引用非静态变量n。我如何解决这个问题,同时让它从用户给定的值中随机化? 问题答案: 不是静态变量,因此您不能以静态方式()引用它。 由于它是类中的实例变量,并且您正在类中引用它,因此可以使用代替。
我是Android编码的n00b,今天我想尝试使用定位服务。 我设置了一个简单的类和一个简单的main,只是为了得到经度和纬度。 但当我尝试调用retrive的构造时,long and latitude Android Studio弹出了一个错误: 错误:(33,16)错误:无法从静态上下文引用非静态变量纬度 这是我的位置班