静态方法调用非静态方法——编译出现错误
Posted 静若飘絮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了静态方法调用非静态方法——编译出现错误相关的知识,希望对你有一定的参考价值。
出现:No enclosing instance of type Test_Static is accessible. Must qualify the allocation with an enclosing instance of type Test_Static (e.g. x.new A() where x is an instance of Test_Static).
上面的编译错误:可能由于静态public static main调用类的非静态方法AA
有两种解决办法:
第一种:
将内部类AA定义成静态static的类。
第二种:
将内部类AA在Main类外边定义。
1、
public class Test_Static { static class AA{ public void print(){ System.out.println("调用类方法"); } } public static void main(String[] args) { AA aa=new AA(); aa.print(); } }
2、
class AAA{ public void print(){ System.out.println("调用类方法"); } } public class Test_Static { public static void main(String[] args) { AAA aa=new AAA(); aa.print(); } }
以上是关于静态方法调用非静态方法——编译出现错误的主要内容,如果未能解决你的问题,请参考以下文章
不应静态调用非静态方法 App\User::products()
无法对非静态方法 getAssets() 进行静态引用 - 无法在片段中播放音频
非静态方法 self::getModuleById() 不能在带有 php 8.0.1 的 Joomla 模块上静态调用