6

クラスで IntelliJ のコード アナライザー (IntelliJ 11.1.4) を実行していますが、次の警告が表示されます。

未チェックの割り当て: 'java.util.List' から 'java.util.List'

それが不平を言うコードは次のとおりです。

List<String> targetDocumentIds = pepperWorkflowInstance.getTargetDocumentIds();

参考のため:

public class PepperWorkflowInstance<T extends PepperWorkflowInstanceData> implements Serializable {

   private List<String>            targetDocumentIds = new ArrayList<String>();
   ...
   public List<String> getTargetDocumentIds() {
      return targetDocumentIds;
   }
   ...
}

タイプが一致するので...では、なぜ割り当てを「チェック」する必要があるのでしょうか?

4

2 に答える 2

1

パラメータがあることを確認しpepperWorkflowInstanceてください:

pepperWorkflowInstance = new PepperWorkflowInstance<SomeClass>();

IDEA-6254を参照してください。

于 2012-12-28T18:15:25.330 に答える
0

pepperWorkflowInstance が生の型が戻り値の型として使用されるスーパー クラスの場合、そのメッセージが生成される可能性があります。

例。

class A{
    public List getTargetDocumentIds(){
        return new ArrayList();
    }
}

class B extends A{
    public List<String> getTargetDocumentIds(){
        return new ArrayList<String>();
    }
}

public class Tester {

    public static void main(String[] args) {
        A a = new B();
        List<String> targetDocumentIds = a.getTargetDocumentIds(); 
        // above produces compiler type safety warning                        
    }
}
于 2012-11-20T16:39:57.620 に答える