我的代碼被用作兩個大版本的一部分並與外部接口交互。 在其中一個版本中添加了新的API(我需要調用一個新的方法)。JAVA 僅在運行時編譯函數
我想阻止保持我的代碼兩個版本,並使用if語句:
If VersionX
Do Method1()
If VersionY
Do Method2()
假設method2()
是新的功能,我需要調用,是有辦法的代碼只能在編譯運行時(意味着如果我在VersionX
系統上運行,那麼編譯和異常沒有問題,儘管method 2()
在那裏不存在)?
您可以通過interfaceClass.class.getMethod(「xxx」,params)檢查接口中是否存在該方法,並捕獲該異常。或者,您可以調用方法並捕獲LinkageError(NoSuchMethodError)(設置一個靜態布爾值,不要再調用該方法,具體取決於值) – bestsss 2011-05-29 09:16:52