【问题标题】:Java: Warning: References to generic type should be parameterizedJava:警告:对泛型类型的引用应参数化
【发布时间】:2012-11-01 00:06:47
【问题描述】:

currentProfile.getFriends() 方法在 ArrayList 上返回一个迭代器。它按预期工作,但编译器在将它分配给另一个迭代器时给了我一个友好的警告:iterator is a raw type. References to generic type Iterator <E> should be parameterized

我几乎不知道这意味着什么,请赐教?如果我的描述不够清楚,这就是我正在做的Iterator friendList = currentProfile.getFriends();

【问题讨论】:

    标签: java iterator


    【解决方案1】:

    如果可以,请查看方法 getFriends() 的签名。应该是这样的

    public Iterator<some type> getFriends()
    

    the 是您需要放入 Iterator 引用的类型。 例如,如果方法是:

    public Iterator<Friend> getFriends()
    

    使用:

    Iterator<Friend> friendList = currentProfile.getFriends(); 
    

    【讨论】:

      【解决方案2】:
      `Java: Warning: References to generic type should be parameterized` 
      

      这意味着你将一个具有泛型类型的对象分配给一个没有声明泛型类型的引用。

      示例:

      List<String> list = new ArrayList<String>();
      Iterator itr=   list.iterator(); // you'd get that warning on this line, as you are not making iterator a generic type.
      
      it'd disappear when you do this
      
       Iterator<String> itr = list.iterator();
      

      【讨论】:

      • 如果代码还是这样编译会发生什么?类型是Object吗?
      • 是的,这就是要问的问题,亚伦
      • @Araon:如果你不给它,我认为在这种情况下没有任何问题,但在少数情况下,代码可能在运行时无法转换。见stackoverflow.com/questions/20790770/…
      猜你喜欢
      • 2020-02-04
      • 2016-12-22
      • 1970-01-01
      • 2012-08-06
      • 1970-01-01
      • 1970-01-01
      • 2013-06-01
      • 2021-03-27
      • 1970-01-01
      相关资源
      最近更新 更多