IDE会有警告:The static method xx() from the type Xx should be accessed in a static way
我对IDE的意思的理解是:
其实本身不需要创建实例就能调用的方法,你却在实例里调用,它以为你为了调用这个方法而专门创建了一个实例,多做了内存开销,所以应该警告吧;
做java开发的好像很少有管这种警告的,尤其是IDE里的警告是可选关闭的,公司见到的很多都报着没有使用序列化ID的警告,也没人管,不同于c语言,c语言为了尽可能多的兼容不同平台,需要"标准"些,所以可能会使用gcc的-Wall选项,java是字节码指令由虚拟机执行,只有知道是啥命令,虚拟机就能运行,一般用的也是Oracle或Sun的Hotspot虚拟机,不需要考虑那个,其它虚拟机也遵循了同一Java虚拟机规范,也不可能执行不了,但这不代表有各种警告的代码,能在其他虚拟机比如OpenJDK,IBM的java虚拟机中一样有良好的的运行表现,因为各大虚拟机实现厂商对运行时的优化可能迥异;
其实本身不需要创建实例就能调用的方法,你却在实例里调用,它以为你为了调用这个方法而专门创建了一个实例,多做了内存开销,所以应该警告吧;
做java开发的好像很少有管这种警告的,尤其是IDE里的警告是可选关闭的,公司见到的很多都报着没有使用序列化ID的警告,也没人管,不同于c语言,c语言为了尽可能多的兼容不同平台,需要"标准"些,所以可能会使用gcc的-Wall选项,java是字节码指令由虚拟机执行,只有知道是啥命令,虚拟机就能运行,一般用的也是Oracle或Sun的Hotspot虚拟机,不需要考虑那个,其它虚拟机也遵循了同一Java虚拟机规范,也不可能执行不了,但这不代表有各种警告的代码,能在其他虚拟机比如OpenJDK,IBM的java虚拟机中一样有良好的的运行表现,因为各大虚拟机实现厂商对运行时的优化可能迥异;
温馨提示:答案为网友推荐,仅供参考
第1个回答 2014-03-30
不是不推荐使用,看什么场景,警告意思是:
静态方法要通过静态的方式来访问,也就是说静态方法要被类来调用,要在静态方法中引用。追问
<%! %> 和 <% %> 有什么区别呢??
<%! %> 被修饰的是静态的,信息是类增的追问
静态方法要通过静态的方式来访问,也就是说静态方法要被类来调用,要在静态方法中引用。追问
也就是通过类名来调用静态方法,如果我创建多个引用,那这个静态方法在内存里是只创建一次,还是多次呢?
追答都是静的了,你说呢追问当然是一次了,好像钻进死胡同了,囧
追答对啊,静态变量什么的不都是存在那里的么,你写个jsp<%! %> 和 <% %> 有什么区别呢??
<%! %> 被修饰的是静态的,信息是类增的追问
是的
追答表里不一
第2个回答 2014-03-30
如果你方法是静态的,就是有static修饰的,那你的变量也要是static的。