1

我正在尝试使用类变量(向量)并得到以下 2 个错误

1

<identifier> expected
[javac]     bucketList = AppConfig.findVector (BUCKET_LIST_KEY);

2 在getBucketList()方法中,bucketList由于某种原因是 null ......即使它被定义为类的全局变量。

代码

import java.util.Vector;

public class MyClass {
   ...
   private Vector<String> bucketList;

   public ThingieConfig() throws IOException {

     @SuppressWarnings("unchecked")
     bucketList = AppConfig.findVector (BUCKET_LIST_KEY);       
     if (bucketList != null && !bucketList.isEmpty()) {
       log_.debug ("Bucketlist defined");
       log_.debug("Buckets Defined : " + bucketList);
     }//if
   }//thingie

   public Vector getBucketList() {
    log_.debug ("Returning Vector " + bucketList);
    return bucketList;
    }//getBucketList

}//class
4

4 回答 4

1

定义它的类成员变量并不意味着它将具有默认初始化,默认情况下它将是null

方法声明需要返回类型,以下无效

public ThingieConfig() throws IOException 
于 2012-07-06T18:52:51.850 回答
1
public ThingieConfig()

不是有效的方法。它没有返回类型,但类名是MyClass,所以它不能是构造函数。

于 2012-07-06T18:52:56.867 回答
1

bucketList 需要初始化:

 private Vector<String> bucketList = new Vector<String>();

你需要说明你的方法返回什么,或者无效:

public void ThingieConfig() throws IOException {
于 2012-07-06T18:54:59.680 回答
0

假设bucketList = AppConfig.findVector (BUCKET_LIST_KEY);一旦所有其他错误都得到修复,这就是我所做的修复它。

某处,bucketList需要初始化。
例如,在 的第一行ThingieConfig(),您可以输入
bucketList = new Vector<String>();. 这可能不是您的最佳位置,但它应该出现在某个地方。

此外,每个方法都需要一个返回类型。所以这条线

public ThingieConfig() throws IOException {

应该

public Vector<String> ThingieConfig() throws IOException {

(因为您返回您的 bucketList)。

最后,Vector在 Java 中已弃用。我会考虑ArrayList改用。

于 2012-07-06T19:45:36.923 回答