首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >应为<identifier>。java

应为<identifier>。java
EN

Stack Overflow用户
提问于 2012-05-21 22:02:03
回答 3查看 47.1K关注 0票数 2

我有一段java代码。我是爪哇的菜鸟..

错误:

代码语言:javascript
复制
<identifier> expected
cfg = new Config;

代码:

代码语言:javascript
复制
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();

代码语言:javascript
复制
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 --------
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-21 22:04:24

是的,这就是问题所在:

代码语言:javascript
复制
public class ClosureBuilder {
    cfg = new Config();
    ...
}

在类的顶层,您只能拥有:

({ ... })

  • Static初始化程序块(static { ... })

  • Variable declarations

  • Constructor declarations

  • Method declarations

  • Nested类型declarations

  • Finalizer declarations

  • 实例初始化程序块

这些都不是。如果你打算声明一个变量,你应该这样做:

代码语言:javascript
复制
private Config cfg = new Config();

如果这不是你想做的,你应该解释你的意图。

编辑:一旦你修复了这个问题,这个编译器错误看起来就很清楚了:

类配置是公共的,应在名为Config.java的文件中声明

有两种可能的修复方法:

将其设置为non-public

  • Move to a
  • Config to a file

任何一个都应该修复这个错误(可能会揭示更多)。

票数 8
EN

Stack Overflow用户

发布于 2012-05-21 22:03:51

你在哪里声明你的cfg变量?

我只看到作业。我认为这可能是原因所在。

代码语言:javascript
复制
Config cfg = new Config();

应该会修好的。

票数 3
EN

Stack Overflow用户

发布于 2012-05-22 01:38:31

虽然您的意图不是很清楚,但我假设您希望在创建任何其他变量之前创建cfg。首先,将您的类Config声明为非公共的,或者移动到文件Config.java。在静态块中初始化cfg是有意义的。下面是一个可能的代码片段:

私有静态配置cfg = null;

私有静态字符串JDBC = null;

静态{

代码语言:javascript
复制
  cfg = new Config();

  JDBC = cfg.getProperty("JDBC"); 

}

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10686729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档