java:不能从静态上下文中引用非静态变量错误

以下代码在变量上产生了错误,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 


狐的传说
浏览 519回答 3
3回答

慕村225694

Java有两种变量a)班级级别(静态):每个班级一个班级。假设您有学生班级,并且将名称定义为静态变量。现在无论您创建多少个学生对象都将具有相同的名称。 对象级别:它们属于每个对象。如果名称是非静态的,则所有学生可以使用不同的名称。b)班级级别:此变量在班级加载时初始化。因此,即使未创建任何学生对象,您仍然可以访问和使用静态名称变量。对象级别:创建新对象时,它们将被初始化,例如new();。 C)您的问题:您的类刚刚加载到JVM中,并且您已经调用了它的主要(静态)方法:合法。现在,您要调用对象变量:对象在哪里?您必须创建一个对象,然后只有您才能访问对象级别的变量。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java