我正在尝试从我的类中的属性文件加载数据。但是我收到错误<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
答案 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();
}
}
}