为了账号安全,请及时绑定邮箱和手机立即绑定

Java是否支持内部/本地/子方法?

Java是否支持内部/本地/子方法?

喵喔喔 2019-11-29 14:17:07
这是我的代码。public class SubFunction {    private String drawTribleX(){        return trible("X");    }    private String trible(String t){        return t + t + t;    }    public static void main(String[] args){        SubFunction o = new SubFunction();        System.out.println(o.drawTribleX());    }}我可以做这样的事情吗?public class SubFunction {    private String drawTribleX(){        // *** move trible(t) inside drawTribleX() ***        private String trible(String t){            return t + t + t;        }        return trible("X");    }    public static void main(String[] args){        SubFunction o = new SubFunction();        System.out.println(o.drawTribleX());    }}谢谢。
查看完整描述

3 回答

?
慕容3067478

TA贡献1773条经验 获得超3个赞

很简单-不。您不能将一个方法嵌套在另一个方法中。


如果确实要执行此操作,则可以在方法内定义类(奇怪的是,鉴于先前的限制),因此可以将方法包装在外部方法内的类中。


但是,这不是很惯用的方法,通常的做法是在私有方法列表中(在顶层类中),可能根据目的将其分组,并用注释块来划分各组。


但是,如果您偶然发现使用Scala,则可以将方法嵌套到您的内心深处...


查看完整回答
反对 回复 2019-11-29
?
慕神8447489

TA贡献1780条经验 获得超1个赞

您也可以通过这种方式尝试使用匿名内部类。


public class SubFunction {

    private String drawTribleX() {

        // *** move trible(t) inside drawTribleX() ***

        Trible t = new Trible() {

            public String trible(String t) {

                return t + t + t;

            }

        };

        return t.trible("X");

    }


    public static void main(String[] args) {

        SubFunction o = new SubFunction();

        System.out.println(o.drawTribleX());

    }


    interface Trible {

        String trible(String t);

    }

}


查看完整回答
反对 回复 2019-11-29
  • 3 回答
  • 0 关注
  • 376 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信