Java中预期的<identifier>

时间:2016-05-12 07:33:47

标签: java

我正在尝试从我的类中的属性文件加载数据。但是我收到错误<identifier> expected。我没有得到我在这里做错了,请告诉我我做错了什么。< / p>

public class ToDoList {

  private Properties prop = new Properties();
  {
        prop.load(this.getClass().getClassLoader().getResourceAsStream("file.properties"));//Here i am getting the error
  }
  catch (IOException ioe)
  {
    ioe.printStackTrace();
  }
}

错误就像

<identifier> expected
illegal start of type
')' expected
';' expected
illegal start of type
<identifier> expected
';' expected
invalid method declaration; return type required
';' expected

3 个答案:

答案 0 :(得分:2)

您忘记了try关键字。它应该是

try {
// statements
} catch (IOException ioe) {
// handle exception
}

并且不要忘记将代码放在方法中。

答案 1 :(得分:0)

你使用了一个初始化程序块{ ... }但是没有一个catch块,也没有尝试。

在该级别,只允许字段,构造函数,类和方法声明。

我的解决方案,将所有内容放在构造函数中。

public ToDoList() {
    try {
        prop.load(this.getClass().getClassLoader().getResourceAsStream("file.properties"));
    }
    catch (IOException ioe)
    {
        ioe.printStackTrace();
    }
}

答案 2 :(得分:0)

我假设你的属性文件看起来像:

someName1=someValue1
someName2=someValue2
someName3=someValue3

在我的情况下,properties-file位于项目的根文件夹中。

但这不是必要的。

public class Application
{
    public static void main(String[] args)
    {
        Properties prop = new Properties();
        try
        {
            InputStream input = new FileInputStream("./test.properties");
            prop.load(input);
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }

        System.out.println(prop.get("someName1"));
        System.out.println(prop.get("someName2"));
        System.out.println(prop.get("someName3"));
    }
}

这显示了我在属性文件中设置的值

请注意,您没有在代码中调用任何函数:

public class ToDoList {
//Here you declare your properties
  private Properties prop = new Properties();
  {// this is not a function
        prop.load(this.getClass().getClassLoader().getResourceAsStream("file.properties"));//Here i am getting the error
  }
  catch (IOException ioe) // you dont start a try-clause
  {
    ioe.printStackTrace();
  }
}

将其更改为:

public class ToDoList {

  private Properties prop = new Properties();
public ToDoList(){ //Constructor of the class
  try{
// declare the inputstream with that file
InputStream input = new FileInputStream("file.properties");
     prop.load(input);
  }
  catch (IOException ioe)
  {
// Error handling code here
    ioe.printStackTrace();
  }
}
}