2012-07-06 73 views
1

我试图利用一个类变量(矢量),并得到了以下2个错误Java的矢量作用域

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

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

CODE

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 
+0

没有足够的信息来回答这个问题。什么是BUCKET_LIST_KEY以及什么是findVector?进一步'public ThingieConfig()'不是一个有效的函数声明。你需要一个'Object'或'void'作为返回类型 – Woot4Moo 2012-07-06 19:10:07

+0

bucketList是一个向量:) – Cmag 2012-07-06 19:28:18

回答

1

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

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

public ThingieConfig() throws IOException 
+0

感谢您的帮助......但我该如何解决这个问题:bucketList = AppConfig.findVector(BUCKET_LIST_KEY); – Cmag 2012-07-06 19:03:54

+0

什么是'BUCKET_LIST_KEY'? – 2012-07-06 19:05:05

1
public ThingieConfig() 

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

+0

感谢您的帮助...但我该如何修复预计错误 – Cmag 2012-07-06 19:04:34

+0

您在解决该问题后仍然收到错误?如果是这样,你可以在代码中发布行号和相应的行号吗? – 2012-07-06 20:06:04

1

bucketList需要进行初始化:

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

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

public void ThingieConfig() throws IOException { 
+0

java:97: expected – Cmag 2012-07-06 19:02:29

+0

bucketList = AppConfig.findVector(BUCKET_LIST_KEY); – Cmag 2012-07-06 19:03:32

+0

当你没有将它们包含在原始源代码中时,用行号进行注释并没有什么帮助。如果ThingieConfig()尚未运行,getBucketList()将返回null。你可以请输入完整的句子告诉我你是否还有其他问题。 – Ina 2012-07-06 19:38:27

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来代替。