簡體   English   中英

<identifier> 預期。 java的

[英]<identifier> expected. java

我有這段java代碼。 我是java中的菜鳥..

錯誤:

<identifier> expected
cfg = new Config;

碼:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;
import java.io.*; 

import java.util.*;
import java.util.Properties;

public class Config 
{

   Properties configFile;
  public Config()
{
configFile = new java.util.Properties();
try {           
  configFile.load(this.getClass().getClassLoader().getResourceAsStream("config"));          
}catch(Exception eta){
    eta.printStackTrace();
}
  }

  public String getProperty(String key)
  {
 String value = this.configFile.getProperty(key);       
    return value;
  }

}



public class ClosureBuilder {

cfg = new Config();

private static String JDBC = cfg.getProperty("JDBC");
private static String URL = cfg.getProperty("URL");
private static String DIMENSION_TABLE = cfg.getProperty("DIMENSION_TABLE");
private static String CLOSURE_TABLE = cfg.getProperty("CLOSURE_TABLE");
private static String KEY = cfg.getProperty("KEY");
private static String PARENT_KEY = cfg.getProperty("PARENT_KEY");

private static Object TOP_LEVEL_PARENT_KEY = '0';


private Object topLevel = null;

private Set<Object> processedNodes;

private PreparedStatement aPst;
public static void main(String[] args) throws Exception {

----------- More code --------

是的,這是問題所在:

public class ClosureBuilder {
    cfg = new Config();
    ...
}

在班級的頂層,您只能:

  • 實例初始化程序塊( { ... }
  • 靜態初始化塊( static { ... }
  • 變量聲明
  • 構造函數聲明
  • 方法聲明
  • 嵌套類型聲明
  • 終結者聲明

這些都不是。 如果你聲明一個變量,你應該這樣做:

private Config cfg = new Config();

如果這不是你打算做的,你應該解釋你的意圖。

編輯:一旦你修復了這個,這個編譯錯誤似乎很清楚:

class Config是public,應該在名為Config.java的文件中聲明

有兩種可能的解決方法:

  • 使Config非公開
  • 將其移動到名為Config.java的文件

要么應該修復該錯誤(可能揭示更多)。

你在哪里宣布你的cfg變量?

我只看到作業。 我想這可能就是原因。

Config cfg = new Config();

大聲解決它。

雖然你的意圖不是很明確,但我假設你想在任何其他變量之前創建cfg。 首先將您的類Config聲明為非公共或移動到文件Config.java。 在靜態塊中初始化cfg是有意義的。 以下是可能的代碼段:

private static Config cfg = null;

private static String JDBC = null;

靜態的 {

  cfg = new Config();

  JDBC = cfg.getProperty("JDBC"); 

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM