以下代码在变量上产生了错误,con2说 "non-static variable con2 cannot be referenced from a static context Error."我用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
3 回答

慕村225694
TA贡献1880条经验 获得超4个赞
Java有两种变量
a)
班级级别(静态):
每个班级一个班级。假设您有学生班级,并且将名称定义为静态变量。现在无论您创建多少个学生对象都将具有相同的名称。
对象级别:
它们属于每个对象。如果名称是非静态的,则所有学生可以使用不同的名称。
b)
班级级别:
此变量在班级加载时初始化。因此,即使未创建任何学生对象,您仍然可以访问和使用静态名称变量。
对象级别:创建新对象时,它们将被初始化,例如new();。
C)
您的问题:您的类刚刚加载到JVM中,并且您已经调用了它的主要(静态)方法:合法。
现在,您要调用对象变量:对象在哪里?
您必须创建一个对象,然后只有您才能访问对象级别的变量。
添加回答
举报
0/150
提交
取消