6-9方法内部类 return new Inner_f().play(); 要求返回值不能为空

6-9方法内部类 return new Inner_f().play(); 要求返回值不能为空

public class BallTest {
  // 创建成员内部类Inner_m
  public class Inner_m implements Ball{
     
      public void play(){
          System.out.println("成员内部类");
          System.out.println("打篮球");
      }
  }

 // 创建方法内部类
  public void getInner_f(){
     
      class Inner_f implements Ball{
         
          public void play(){
               System.out.println("***********");
                System.out.println("方法内部类");
                 System.out.println("打乒乓球");
    
               
          }
         
       }
    return new Inner_f().play();     //此处报错
  }


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕雪 2020-04-29 11:01:10

请注意你的结构

http://img1.sycdn.imooc.com//climg/5ea8ed8e0982c37f05930631.jpg

上面写的是void, 意思就是没有返回值 ,你这里就不能return new Inner_f().play();  所以它报错了。你要上下两处,改成统一的就行了。祝:学习愉快


  • 提问者 龙井1 #1
    把 public void getInner_f()改为 public Object getInner_f() 后依然报错 返回值不能为空
    2020-04-29 11:41:30
  • 好帮手慕雪 回复 提问者 龙井1 #2
    最后的一行,改为return new Inner_f() ,这就是一个Object哦
    2020-04-29 14:02:26
  • 提问者 龙井1 回复 好帮手慕雪 #3
    可是我需要调用方法内部类的 play();方法,返回return new Inner_f();就没意义了
    2020-04-29 19:48:03
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师