Eclipse说我不能对非静态字段Art.instance进行静态引用。为什么认为我从静态上下文调用Art.instance?

TDRenderer本身的调用方式如下:

renderer = new TDRenderer();


TDRenderer.java:

package towerDefense;

import java.awt.Graphics;
import java.awt.Image;

public class TDRenderer {

    public Art art;

    public TDRenderer()
    {
        art = Art.instance;
    }

    public void render(Graphics g)
    {
        for(int i = 0; i < 32; i++)
        {
            for(int j = 0; j < 24; j++)
            {
                Image itd = (Image)(art.sprites[art.level1.tiles[i][j].type]);
                g.drawImage(itd, itd.getWidth(null), itd.getHeight(null), null);
            }
        }
    }
}

最佳答案

这并不是说您处于静态环境中;而是这是因为instance不是Art的静态字段,但是将其引用为Art.instance意味着您试图将其视为静态使用。

关于java - 为什么不能调用非静态变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9525252/

10-10 02:49