变量类型在上下文中无效(无法从静态上下文中引用非静态变量)

本文目录
- 无法从静态上下文中引用非静态变量
- java中“无法从静态上下文中引用非静态变量”为什么理由是什么
- MATLAB 7 禁止在相同上下文中将同一名称同时用作函数和变量,有时可以,不可以时有什么好办法解决吗
- 在此上下文中不允许使用 ’n’此处只允许使用常量、表达式或变量不允许使用列名
无法从静态上下文中引用非静态变量
class Fish{
public int weight=1;
}
class Lake{
Fish fish;
void setFish(Fish s)
{
fish=s;
}
void foodFish(int m){
fish.weight=fish.weight+m;
}}
public class E{
public static void main(String args){
Fish redFish=new Fish();
System.out.println(redFish.weight);
Lake lake=new Lake();
lake.setFish(redFish);
lake.foodFish(120);
System.out.println(redFish.weight);
System.out.println(lake.fish.weight);}}
java中“无法从静态上下文中引用非静态变量”为什么理由是什么
静态变量是在类加载的时候创建的并赋值的,因此在一个动态方法里使用静态变量时可以的;静态上下文(静态代码块)也是在类加载时执行的,而非静态变量都是在类加载完成后再赋值的,如果能在静态块中使用非静态变量,就会因为该变量的空指针而抛异常(可能还不只这点问题,只是举个例)。JAVA类的加载机制就决定了无法从静态上下文中引用非静态变量。
MATLAB 7 禁止在相同上下文中将同一名称同时用作函数和变量,有时可以,不可以时有什么好办法解决吗
从你讲的问题,虽然没讲太清楚,但我推测,你可能写了个脚本程序文件,其中定义了子函数,在运行时就弹出了这个提示。一般情况下,在函数文件中才能定义子函数,在脚本文件中不允许定义子函数。这是个基本的要求。
在此上下文中不允许使用 ’n’此处只允许使用常量、表达式或变量不允许使用列名
String insertStr="INSERT INTO urldata(Number,UrlName,Name) VALUES(n,\"URLName\",\"Name\")";这里你的n是代表什么,如果你这里是n整型变量的话,应该改成String insertStr="INSERT INTO urldata(Number,UrlName,Name) VALUES(" & n & “,\"URLName\",\"Name\")";

更多文章:
endless中文什么意思(endness和endless的区别是什么)
2026年9月11日 18:50
dreamweaver网页制作div(怎样在DreamWeaver中插入DIV标签进行布局)
2026年9月11日 15:10







