1
是否可以使用註釋來創建多個版本的API?使用註釋創建API的多個版本
我有一個需要實現的目標API,但它已經在增長,我希望支持多個級別 - 如果可能的話在同一分支。我已經考慮過拆分API並將其代理到實現庫,但仍需要大量代碼才能保持同步。
所以,你會創建這樣的代碼:
@Since("1.2") <- only created when 1.2 or higher
public interface InNewerAPI {
@Since("1.3") <- only compiled when 1.3 or higher
public void methodInEvenNewerAPI();
}
當然,我也可以用預處理這一點,但我想避免的預處理器可以爲Java代碼。
這種方法是否有任何缺點(比如在1.8之前放棄參數名稱)?
請注意,我需要支持接口和類,包括抽象類和內部類。方法和常量也需要進行版本化。
包括爲客戶我認爲這是優雅 – Leo
您正在討論支持多個Java版本,而不是您的API的不同版本,是否正確? –
您想如何使用這些註釋?我的意思是你想阻止老客戶調用更新的API或阻止老客戶看到它嗎? – AlexR