當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java Method within用法及代碼示例


Java不支持“directly”嵌套方法。許多函數性編程語言都支持方法中的方法。但是,您可以通過定義本地類(方法內的類)來實現Java 7或更早版本中的嵌套方法函數,從而進行編譯。在Java 8和更高版本中,您可以通過lambda表達式來實現。讓我們看看它是如何實現的。

方法1(使用匿名子類)
它是一個沒有名稱的內部類,並且僅為其創建一個對象。當使用某些“extras”來創建對象的實例(例如,類或接口的重載方法)而不必實際子類化時,匿名內部類可能很有用。有關匿名內部類的更多詳細信息,請單擊此處

// Java program implements method inside method 
public class GFG { 
  
    // create a local interface with one abstract 
    // method run() 
    interface myInterface { 
        void run(); 
    } 
  
    // function have implements another function run() 
    static void Foo() 
    { 
        // implement run method inside Foo() function 
        myInterface r = new myInterface() { 
            public void run() 
            { 
                System.out.println("geeksforgeeks"); 
            }; 
        }; 
        r.run(); 
    } 
    public static void main(String[] args) 
    { 
        Foo(); 
    } 
}
輸出:
geeksforgeeks

方法2(使用本地類)
您還可以在本地類中實現方法。在方法內部創建的類稱為局部內部類。如果要調用本地內部類的方法,則必須在方法內部實例化此類。

// Java program implements method inside method 
public class GFG { 
  
    // function have implementation of another  
    // function inside local class 
    static void Foo() 
    { 
        // local class 
        class Local { 
            void fun() 
            { 
                System.out.println("geeksforgeeks"); 
            } 
        } 
        new Local().fun(); 
    } 
    public static void main(String[] args) 
    { 
        Foo(); 
    } 
}
輸出:
geeksforgeeks

方法3(使用lambda表達式)
Lambda表達式本質上表示函數接口的實例(具有單一抽象方法的接口稱為函數接口。示例為java.lang.Runnable)。 lambda表達式實現唯一的抽象函數,因此實現了函數接口。有關表達的更多信息,請單擊此處

// Java program implements method inside method 
public class GFG { 
    interface myInterface { 
        void run(); 
    } 
  
    // function have implements another function 
    // run() using Lambda expression 
    static void Foo() 
    { 
        // Lambda expression 
        myInterface r = () -> 
        { 
            System.out.println("geeksforgeeks"); 
        }; 
        r.run(); 
    } 
    public static void main(String[] args) 
    { 
        Foo(); 
    } 
}
輸出:
geeksforgeeks


相關用法


注:本文由純淨天空篩選整理自Rajput-Ji大神的英文原創作品 Method within method in java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。