0

与えられた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]] = ...
4

1 に答える 1

2

type T <: Credentials抽象型を定義します。Tこのインスタンスの内容を定義していません。とを含めてみてtype T = credentials.EmailPasswordくださいtype S = storage.EmailPasswordStorage[T]

于 2012-11-20T13:11:19.377 に答える