猿问

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

这是我的代码。


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());

    }

}

谢谢。


喵喔喔
浏览 377回答 3
3回答

慕容3067478

很简单-不。您不能将一个方法嵌套在另一个方法中。如果确实要执行此操作,则可以在方法内定义类(奇怪的是,鉴于先前的限制),因此可以将方法包装在外部方法内的类中。但是,这不是很惯用的方法,通常的做法是在私有方法列表中(在顶层类中),可能根据目的将其分组,并用注释块来划分各组。但是,如果您偶然发现使用Scala,则可以将方法嵌套到您的内心深处...

慕神8447489

您也可以通过这种方式尝试使用匿名内部类。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);    }}
随时随地看视频慕课网APP

相关分类

Java
我要回答