与えられたJavaクラス「abstractCredentials」と「EmailPassword」/「OAuth」クラスの派生。
およびインターフェースCredentialsStorage、適切な実装EmailPasswordStorageおよびOAuthStorage
ストレージ、有効なクレデンシャル、無効なクレデンシャルのトリプルを使用して、ある種の配列を作成する必要があります)
だから私はこれから始めました:
type T <: Credentials
type S <: CredentialsStorage[T]
private var testData: Array[(S, T, T)] = Array(
(emailStorage, validEmailPasswd, new EmailPasswordCredentials("1", "2")),
(oAuthStorage, validAuthToken, new OAuthCredentials("invalid auth token", OAuthService.FACEBOOK))
)
ただし、これはコンパイルされません
error: type mismatch;
found : storage.EmailPasswordStorage[credentials.EmailPassword]
required: CredentialsStorageTest.this.S
(emailStorage, validEmailPasswd, new EmailPasswordCredentials("1", "2")),
この問題を修正するにはどうすればよいですか?また、ここで依存/存在タイプの正しい定義は何ですか?
UPDタプル型自体の定義に関する問題を解決しました。
type T[A] = (CredentialsStorage[A],A,A)
val testData : Array[T[_ <: Credentials]] = ...