我有一個接口getDeclaredConstructor不會界面找到構造函數參數
public interface IDrawing
接下來我有實現這個接口的類:
public class Line implements IDrawing
現在我有一個類,它接受一個構造函數以上作爲參數:
public LineChanger(Line line)
那裏沒問題。
當我使用反射上面的構造函數調用,它拋出一個NoSuchMethodException
//drawing variable is of class Line implementing IDrawing
.getDeclaredConstructor(IDrawing.class).newInstance(drawing);
異常消失時,我改變構造函數:
public LineChanger(IDrawing line)
是否有可能得到反映工作而不改變構造函數?
我希望保持構造函數嚴格(即在這種情況下只接受一個特定的類Line
),但保持反射對我的工廠工作。
構造函數只接受'Line'對象。沒有任何構造函數可以接受任何'IDrawing',所以當你試圖用反射來獲得一個異常時,你會得到一個Exception並不奇怪。 –