【问题标题】:Java inheritance error: "cannot find symbol"Java 继承错误:“找不到符号”
【发布时间】:2015-11-23 13:21:19
【问题描述】:

我是java初学者!!我在 java 中遇到了cannot find symbol 错误。我用谷歌搜索但没有找到任何令人满意的解决方案。这是我的connect.java 课程

public class connect
{
    static String JDBC_DRIVER; 
    static String DB_URL;
    static String USER;
   static String PASS;
 public connect(){
    JDBC_DRIVER = "com.mysql.jdbc.Driver"; 
    DB_URL = "jdbc:mysql://localhost:3306/my_db";
    USER = "admin";
    PASS = "123";
 }
   public Connection openDbConnection(){
        Connection conn = null;
        try{
           Class.forName("com.mysql.jdbc.Driver");
           System.out.println("Connecting to database...");
           conn = DriverManager.getConnection(DB_URL,USER,PASS);
        }
        catch(SQLException se){
           se.printStackTrace();
        }
        catch(Exception e){
           e.printStackTrace();
        }
        System.out.println("successfully connected to db");
        return conn;
   }

这是query.java

public class query extends connect {
    Statement stmt;
    Connection connection;
    public query(){
        super();
        stmt = null;
        connection =null;
    }

    public void runquery(){

        connection=super.openDbConnection();
        System.out.println("Creating statement...");
        stmt = connection.createStatement();
        String sql;
        sql = "SELECT * FROM my_table";
        ResultSet rs = stmt.executeQuery(sql);
        while(rs.next()){
           int id  = rs.getInt("id");
           System.out.print("ID: " + id);
        }
    }
    public static void main(String[] args){
        query obj = new query(); 
        obj.runquery();
    }   
}

当我通过终端 javac query.java 编译 query.java 时,出现错误:

public class query extends connect {
                           ^
  symbol: class connect
src/database/query.java:22: error: cannot find symbol
        connection=super.openDbConnection();
                   ^
  symbol:   variable super
  location: class query
2 errors

两个类都在同一个目录中。谁能帮我解决这个错误???

【问题讨论】:

  • 你确定你的连接类编译没有错误吗?
  • 看起来您的连接类不在构建路径中。
  • 注意:Java 有编码约定。类、接口和枚举的名称应以大写字母开头,如ConnectConnectToDatabase。不是常量的变量和字段应该以小写字母开头,例如jdbcDriverdbUrl 等。常量(枚举常量或static final 变量是唯一以全大写字母书写并且单词之间有下划线的变量) ,比如CONST_NAME

标签: java


【解决方案1】:

试试这个

 javac connect.java query.java

它应该可以工作。

或者你可以尝试从你的包的父目录编译你的类,即从src目录,如下所示

C:\..\YourProject\src>javac -cp . database\query.java

下面的链接解释了我上面讨论的第二种方法。

另见

【讨论】:

  • 我添加了} 来编译connect.java。
  • 这就是为什么你是王子!
  • 但是一个不同的错误。不是第 22 行中的“找不到符号”。
  • 谢谢!它可以工作,但如何运行它以在终端上显示结果
  • 好的,我明白了!谢谢,我是 stackoverflow 的新手,我没有投票权,但我的投票与你同在
【解决方案2】:

connect 错过了一个} 来编译,所以编译器使用他之前可以编译的版本中的一个旧的connect.class-文件,一个没有openDbConnection 方法的旧版本。只要connect.java不能编译,他就用connect的旧编译版本。

connect.java中添加}query.java中的错误就会消失

【讨论】:

  • 但是一个不同的错误。不是第 22 行中的“找不到符号”。
猜你喜欢
  • 2010-10-05
  • 2013-05-20
  • 2013-12-06
  • 2016-07-22
  • 2013-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多