2017-09-26 61 views
1

我有這樣定義的類:爲什麼我會收到警告Unchecked assignment?

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

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

其中JSONable是一個接口。然後,我創建它的一個實例是這樣的:

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

它的工作原理,但我發現了一個關於未檢查任務的警告。這是爲什麼?我錯過了什麼?

+0

什麼是**確切**警告/錯誤您收到? –

+0

也許是因爲你的'encrypt'方法返回一個'SymEncryptedData',你正在分配一個'SymEncryptedData '變量? – Berger

回答

3

變化

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

public SymEncryptedData<VerifierType> 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

相關問題