android的新手 - 无法在受保护的静态方法中访问全局变量

时间:2013-09-11 20:33:26

标签: java android

这是我的代码:

protected static Bitmap scaleImage() { 
Bitmap nad =    BitmapFactory.decodeFile(path);

return nad;
}

“path”是一个全局变量,它给出了一个错误说明:无法对非静态字段路径进行静态引用...可能会发生这种情况,因为path是字符串,而不是静态字符串。但是我怎么能在这里访问其他变量呢?我尝试查看文档但找不到任何内容。

2 个答案:

答案 0 :(得分:4)

您的变量path在您的类中声明如下:

String path;

这意味着它是实例变量,它属于您的类的特定副本。 scaleImage()不属于任何特定副本,因此您无法使用path,因为系统无法知道您所指的副本。

此方法可能应该将path作为参数而不是硬编码,或者它不应该是static并且应该在类的特定实例上调用。

答案 1 :(得分:0)

基本上,你是在正确的轨道上。 path必须为static。仅仅它是类中的成员变量是不够的 - 类级变量不会自动static(这是一个问题)。

Java中不存在全局变量,所以我猜你在谈论在类级别声明的变量。 (变量在类中,类在包内,可以在其他包内 - 所以它远非“全局”。)