Java 中使用反射機制實作方法重載:透過反射取得方法:使用 getMethod() 方法取得方法對象,指定方法名稱和參數類型。呼叫方法:使用 invoke() 方法呼叫方法,指定呼叫者物件和參數值。
使用Java 反射機制進行方法重載
Java 中的方法重載允許建立具有相同名稱但參數清單不同的多個方法。可以透過使用反射機制在運行時呼叫這些重載方法。
反射機制
反射機制允許程式在執行時間檢查和修改類別、方法和欄位。要使用反射,需要使用 java.lang.reflect
套件中的類別。
取得方法
要取得方法,可以使用getMethod()
方法並指定方法的名稱和參數類型:
Method method = Class.forName("MyClass").getMethod("myMethod", new Class<?>[] { String.class });
呼叫方法
呼叫方法時,需要指定方法的呼叫者物件以及要作為參數傳遞的值:
method.invoke(myClassObject, "myParameter");
實戰案例
下述範例示範如何使用反射機制呼叫重載方法:
public class MethodOverloading { public void myMethod(String param) { System.out.println("Method with String parameter: " + param); } public void myMethod(int param) { System.out.println("Method with int parameter: " + param); } public static void main(String[] args) { MethodOverloading obj = new MethodOverloading(); Class<?> cls = obj.getClass(); try { // 调用带 String 参数的方法 Method method1 = cls.getMethod("myMethod", new Class<?>[] { String.class }); method1.invoke(obj, "Hello"); // 调用带 int 参数的方法 Method method2 = cls.getMethod("myMethod", new Class<?>[] { int.class }); method2.invoke(obj, 100); } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) { e.printStackTrace(); } } }
#輸出
Method with String parameter: Hello Method with int parameter: 100
以上是使用Java反射機制進行方法重載?的詳細內容。更多資訊請關注PHP中文網其他相關文章!