0

我试图在 pdf 文档中显示来自类“dbproperties”的变量值。以下代码说明了它,

dbproperties db = new dbproperties();

Chunk text1 = new Chunk(db.index_number);
Paragraph p = new Paragraph();
p.add(text1);
document.close();

但收到错误

不能从静态内容中引用非静态变量”,用于“Chunk text1 = new Chunk(db.index_number);

谁能帮我解决这个问题??

4

2 回答 2

1

由于代码不完整,再次尝试猜测:

会不会db是您的类的非静态成员,但代码是在某个静态方法或代码块中执行的?例如

class YourClass
{
    dbproperties db = new dbproperties();

    public static void main(String[] args)
    {
        [...]
        Chunk text1 = new Chunk(db.index_number);
        Paragraph p = new Paragraph();
        p.add(text1);
        document.close();
        [...]
    }
}

在这种情况下,代码无法访问db,因为代码位于静态方法中(即不在类的单个实例的上下文中),而要访问的成员与单个实例相关联。

在这种情况下,您需要一个类的实例,例如

        [...]
        YourClass instance = new YourClass();
        Chunk text1 = new Chunk(instance.db.index_number);
于 2013-02-14T09:49:20.410 回答
1

您能否向我们展示更多导致此错误的精确代码?

我的看法是,您以非静态方法或仅作为实例字段单独声明 db 变量:

dbproperties db = new dbproperties();

但以下代码在 statis 方法中执行,如下所示:

public static void main(String[] argv){
   Chunk text1 = new Chunk(db.index_number);
   ....
}

然后db不能从 main 访问。它们应该是静态的或实例的。您可以在 main 中声明db来解决它。

于 2013-02-14T09:50:05.563 回答