2017-09-26 32 views
1

は、私はこのように定義されたクラスを持っている:JSONableインターフェイスをある警告が表示されないのはなぜですか。

public class SymEncryptedData<VerifierType extends JSONable> implements JSONable { 
    // ... 

    public SymEncryptedData encrypt(Key key, byte[] payload, VerifierType verifier) { 
     // ... 
    } 
} 

SymEncryptedData<Verifier> symEncryptedData = new SymEncryptedData<Verifier>().encrypt(randomKey, PAYLOAD.getBytes(), VERIFIER); 

動作しますが、私は未確認の割り当てに関する警告を取得していた:その後、私はこのようなことのインスタンスを作成します。何故ですか?私は何が欠けていますか?

public SymEncryptedData<VerifierType> encrypt(Key key, byte[] payload, VerifierType verifier) { 

+0

**正確な警告/エラーは何ですか? –

+0

あなたの 'encrypt'メソッドが' SymEncryptedData'を返すので、 'SymEncryptedData '変数に代入していると思いますか? – Berger

答えて

3

変更

public SymEncryptedData encrypt(Key key, byte[] payload, VerifierType verifier) { 

あなたはパラメータ化変数への生の値を代入するときに、未チェックの割り当て警告が表示されます。

2

encryptは生タイプSymEncryptedDataを返します。タイプパラメータを追加すると、警告が表示されなくなります。

public SymEncryptedData<VerifierType> encrypt(Key key, byte[] payload, VerifierType verifier) 
+0

私は 'SymEncryptedData'がタイプ –

+0

であるとは思わない@TimCastelijnsコピー&ペーストエラー、修正済み。 – Henry

関連する問題