gpt4 book ai didi

java : non-static variable cannot be referenced from a static context Error

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:27:01 26 4
gpt4 key购买 nike

以下代码在变量 con2 上生成错误,提示 “无法从静态上下文错误中引用非静态变量 con2。” 我在 Google 上搜索了一个解决方案他们建议变量尚未初始化以使方法可用。我是否错误地初始化了它?我也尝试过将内容更改为公开,但这也无济于事。

import java.io.*;
import java.net.*;

import java.sql.*;
import java.sql.CallableStatement;
import java.sql.ResultSet;
import java.sql.PreparedStatement;
import net.sourceforge.jtds.jdbcx.JtdsDataSource;
import net.sourceforge.jtds.jdbc.Driver;

class testconnect {

private java.sql.Connection con2 = null;

private final String url2 = "jdbc:jtds:sqlserver://";
private final String serverName= "SQL01";
private final String portNumber = "2677";
private final String databaseName= "App";
private final String userName = "bob";
private final String password = "boob";
private final String selectMethod = "cursor";

private String getConnectionUrl2(){
System.out.println("initalizing jtds");
//String returnVal = url+serverName+":"+portNumber+";databaseName="+databaseName+";user="+userName+";password="+password+";instance="+instance+";";
String returnVal = url2+serverName+":"+portNumber+"/"+databaseName+";user="+userName+";password="+password;
System.out.println("url2: " + returnVal);
return returnVal;
}

public static void main (String[] args) {
con2 = java.sql.DriverManager.getConnection(getConnectionUrl2());

}

} //end class

最佳答案

您可能想在 con2 的声明中添加“static”。

在 Java 中,事物(包括变量和方法)可以是类的属性(这意味着它们被该类型的所有对象共享),或者它们可以是对象的属性(类的每个对象中的不同属性)同一个类)。关键字“static”用于指示某物是类的属性。

“静态”的东西一直存在。其他的东西只有在你创建了一个对象之后才存在,即使这样每个单独的对象都有它自己的东西的副本。在这种情况下,另一方面是关键:静态的东西不能访问非静态的东西,因为它不知道要查看哪个对象。如果你给它传递一个对象引用,它可以做类似“thingie .con2”,但简单地说“con2”是不允许的,因为你没有说哪个对象的 con2 是指。

关于java : non-static variable cannot be referenced from a static context Error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/926822/

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