`
trydofor
  • 浏览: 150444 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

不可 T extends Iterator<E> & Iterable<E>

 
阅读更多
//(a)
public <T extends Iterator<E> & Iterable<E>> T iterX(){
}

//(b)
public class ValueIterx implements Iterator<E>,Iterable<E>{
  //... ...
  public void Iterator<T> iterator() {
      return this; //(1)
      // return new XXXX() //(2)
  }
}


(a) 方法,除了返回null,其他都是不可以的。
(b) 方法,存在潜在问题,尽量别用注意。

原因没看到官方解释,狗到一些:

1.兼容1.4,否则Iterator无法编译。
2.潜在问题:
(1)写法,有问题,返回一个可变的this。
(2)写法,没问题,返回别的对象或自己的快照。
分享到:
评论

相关推荐

    Java 23种设计模式20迭代器模式.pdf

    private List&lt;String&gt; items = new ArrayList&lt;&gt;(); @Override public Iterator&lt;String&gt; createIterator() { return new ConcreteIterator(this); } // 添加元素到集合 public void add(String item) { ...

    JAVA:PriorityQueue

    - **Iterator&lt;E&gt; iterator()**:返回在此队列中的元素上进行迭代的迭代器。请注意,迭代器不保证以任何特定的顺序遍历优先级队列中的元素。 - **boolean offer(E e)**:将指定的元素插入此优先级队列。如果成功插入...

    java集合与泛型[参考].pdf

    extends E&gt; c)`:将另一集合的所有元素添加到当前集合中。 - `removeAll(Collection&lt;?&gt; c)`:从当前集合中移除另一集合的所有元素。 - `retainAll(Collection&lt;?&gt; c)`:保留当前集合中存在于另一集合中的元素,...

    关于 Java Collections API 您不知道的 5 件事

    private final List&lt;T&gt; internalList = new ArrayList&lt;&gt;(); @Override public void add(T element) { // 在内部列表中找到正确的位置插入元素,并保持有序 int index = findCorrectIndex(element); ...

    Java软件开发实战 Java基础与案例开发详解 11-2 Collection接口 共9页.pdf

    extends E&gt; c)`用于添加多个元素,`removeAll(Collection&lt;?&gt; c)`用于移除集合中的多个元素等。 - **转换操作**:用于集合与数组间的转换,如表11.4所示,包括`toArray()`将集合转换为数组等。 #### 4. 遍历方法 -...

    java集合(自学整理)

    List&lt;String&gt; list = new ArrayList&lt;&gt;(); list.add("a"); list.add("b"); for (String item : list) { System.out.println(item); } ``` - **适配器模式** (`Adapter Pattern`): `java.util.Arrays#asList()...

    Hadoop CountWord 例子

    在大数据处理领域,Hadoop是一个不可或缺的开源框架,它提供了分布式计算的能力,使得处理海量数据变得可能。"Hadoop CountWord" 是一个经典的Hadoop MapReduce程序示例,旨在演示如何利用Hadoop处理文本数据并统计...

    个人笔记--Java_API

    - **使用**:`ClassName&lt;String&gt; obj = new ClassName&lt;&gt;();` **2.4 泛型方法** - **定义**:`&lt;T&gt; returnType methodName(...){...}` - **使用**:`methodName&lt;T&gt;(...)` **2.5 泛型接口** - **定义**:`interface...

    数据存储实验5-编写MapReduce程序实现词频统计.doc(实验报告)

    public void reduce(Text key, Iterable&lt;IntWritable&gt; values, Context context) throws IOException, InterruptedException { int sum = 0; for (IntWritable val : values) { sum += val.get(); } result....

    java高级课件

    - **`UnsupportedOperationException`**:当试图调用集合中不支持的操作时抛出,例如尝试修改不可变集合。 - **`IllegalArgumentException`**:当传递给集合方法的参数无效时抛出。 #### 五、泛型的使用 泛型是...

    第7天(集合【迭代器、增强for、泛型】)v201703101

    List&lt;Type&gt; list = new ArrayList&lt;Type&gt;(); ``` 这样,集合`list`只能存储`Type`类型的元素,编译器会自动检查类型匹配,避免了强制类型转换。 泛型通配符允许在使用集合时保持一定的灵活性。例如,`? extends Type...

    jdk源码阅读Collection详解

    6.&lt;T&gt; T[] toArray(T[] a):以数组形式返回指定数组类型的集合元素。 7.add(E e):向集合中添加元素e。如果集合已经包含元素e,則返回false,否則返回true。 8.remove(Object o):从集合中移除指定的元素o。如果...

    LIStinterface.zip

    extends E&gt; c)`: 在列表末尾添加另一个集合的所有元素。 10. `iterator()`: 返回一个迭代器,用于遍历列表中的元素。 List接口还有两个主要的实现类:ArrayList和LinkedList。ArrayList基于动态数组实现,适合随机...

    详解:泛型、擦除、边界

    3. 泛型接口:泛型也可以应用于接口,如`Iterable&lt;T&gt;`。当实现这个接口时,我们需要指定`T`的具体类型。在示例中,`Tested`实现了`Iterable`接口,这意味着它可以被用于循环遍历。`Tested`的`iterator()`方法返回了...

    使用命令行编译打包运行自己的MapReduce程序 Hadoop2.6.0

    public void reduce(Text key, Iterable&lt;IntWritable&gt; values, Context context) throws IOException, InterruptedException { int sum = 0; for (IntWritable val : values) { sum += val.get(); } result....

    javase 基础演示代码 Java学习资料

    =,&gt;,&lt;,&gt;=,&lt;=),逻辑运算符(&&,||,!)等。 - **流程控制**:如条件语句(if-else,switch-case),循环语句(for,while,do-while)以及跳转语句(break,continue)。 2. **类与对象**: - **类的定义**...

    haXe2语言参考手册(英文)

    - 定义不可变的数据。 - 示例: `const myConst:Int = 10;` - **运算符** (`Operations`): - 支持算术、比较、逻辑等操作。 - 示例: `+`, `-`, `*`, `/`, `&lt;`, `&gt;`, `==`, `!=`, `&&`, `||`. - **一元运算** (`...

    java代码-vector类使用案例

    Vector&lt;String&gt; vector = new Vector&lt;&gt;(); // 添加元素 vector.add("Element 1"); vector.add("Element 2"); vector.add("Element 3"); // 打印Vector的大小 System.out.println("Size: " + vector.size())...

    PHP基础关键字介绍.docx

    - **iterable**: 可迭代类型,用于存储可以迭代的对象(如数组或实现了 Iterator 接口的对象)。 ```php $arr = [1, 2, 3]; foreach ($arr as $value) { echo $value . "\n"; } ``` #### 三、函数和类关键字 ...

Global site tag (gtag.js) - Google Analytics