我正在创建几个不同的类,每个类都与不同的 API 交互。我为每个类创建了一个接口来继承,但是接口中的一个方法可以采用几种不同的数据类型,具体取决于正在实现的 API。是否可以为该方法定义未知类型?
现在我只是将它声明为一个Object
并在实现中强制转换它。
界面:
public interface UDSession {
public void authenticate(String user) throws UDException;
public void linkAccount(Object authInfo) throws UDException;
}
方法实现(只是签名和第一行):
保管箱:
public void linkAccount(Object authInfo) throws UDException {
WebAuthSession.WebAuthInfo info = (WebAuthSession.WebAuthInfo) authInfo;
}
谷歌:
public void linkAccount(Object authInfo) throws UDException {
GoogleOAuthParameters info = (GoogleOAuthParameters) authInfo;
}
我还尝试在接口中将其Class<?>
定义为:并在方法签名实现中将其定义为:Class<WebAuthSession.WebAuthInfo>
。但这没有用。
必须有比使用Object
类型参数更好的方法来做到这一点。有任何想法吗?
谢谢。