Reputation: 3183
I have this snippet of java code. I am a noob in java..
Error :
<identifier> expected
cfg = new Config;
Code:
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 --------
Upvotes: 2
Views: 49412
Reputation: 4877
Though your intention is not very clear, i assume you want to have the cfg created before any other variable. First declare your class Config as non-public or move to file Config.java. It makes sense to initialize cfg in a static block. Below is a possible code snippet:
private static Config cfg = null;
private static String JDBC = null;
static {
cfg = new Config();
JDBC = cfg.getProperty("JDBC");
}
Upvotes: 1
Reputation: 1499770
Yes, this is the problem:
public class ClosureBuilder {
cfg = new Config();
...
}
At the top level of a class, you can only have:
{ ... }
)static { ... }
)This is none of these. If you meant to declare a variable, you should have done so:
private Config cfg = new Config();
If that's not what you intended to do, you should explain your intention.
EDIT: Once you've fixed that, this compiler error seems pretty clear:
class Config is public, should be declared in a file named Config.java
There are two potential fixes for this:
Config
non-publicConfig.java
Either should fix that error (potentially revealing more).
Upvotes: 8
Reputation: 15965
Where are you declaring your cfg
variable?
I only see the assignment. I think that may be the reason.
Config cfg = new Config();
Shoud fix it.
Upvotes: 3