2017-09-26 55 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

相关问题