求问为什么编译错误了

来源:5-1 Java 方法反射的基本操作

慕粉1474367326

2016-11-13 23:43

582889700001352c05000226.jpg

582889700001ad6f05000278.jpg

第一张是老师的,第二张图是我自己做的。为什么我的就有错了。

错误显示No enclosing instance of type MethodDemo1 is accessible. Must qualify the allocation with an enclosing instance of type MethodDemo1 (e.g. x.new A() where x is an instance of MethodDemo1).       办法是在class A前面加一个static就可以解决报错

但为什么老师就可以直接 A a1 = new A();不报错呢


写回答 关注

1回答

  • 超级省电侠4405474
    2016-11-14 02:44:04
    已采纳

    main方法是静态方法,静态方法不能直接调用动态方法,class A需要是静态的.

    老师的是两个不同的类,你这个A是MethodDemo1的内部类.

    超级省电侠4... 回复慕粉1474...

    不是的,建议你去理解一下这部分基础:内部类对象的外围类引用被设置为创建内部类对象的方法中的this引用,你在main()方法中创建的对象A a1= new A();由于main()方法是静态方法,静态方法是没有this引用的,因此报错.

    2016-11-15 02:30:58

    共 3 条回复 >

反射——Java高级开发必须懂的

反射,Java高级开发必须要懂的知识点,学好Java高级课程的基础

151466 学习 · 335 问题

查看课程

相似问题