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
相關用法
- Java Method類 isDefault()用法及代碼示例
- Java Method類 getDefaultValue()用法及代碼示例
- Java Method類 getAnnotatedReturnType()用法及代碼示例
- Java Method類 getParameterAnnotations()用法及代碼示例
- Java Method類 getReturnType()用法及代碼示例
- Java Method類 getParameterTypes()用法及代碼示例
- Java Method類 getGenericParameterTypes()用法及代碼示例
- Java Method類 toGenericString()用法及代碼示例
- Java Method類 hashCode()用法及代碼示例
- Java Method類 getModifiers()用法及代碼示例
- Java Method類 getDeclaredAnnotations()用法及代碼示例
- Java Method類 getAnnotation()用法及代碼示例
- Java Method類 isVarArgs()用法及代碼示例
- Java Method類 getDeclaringClass()用法及代碼示例
- Java Method類 getExceptionTypes()用法及代碼示例
注:本文由純淨天空篩選整理自Rajput-Ji大神的英文原創作品 Method within method in java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。