Java泛型(4):泛型与匿名内部类

时间:2021-07-16 19:26:46

泛型同样也可以使用在匿名内部类中。

下面的例子是对 Java泛型(3):泛型方法 例(2)的修改。

1 public interface Generator<T> {
2     T next();
3 }
 1 public class CountedObject {
 2 
 3     private static int count = 0;
 4 
 5     private final long id = ++count;
 6 
 7     private CountedObject() {
 8     }
 9 
10     public String toString() {
11         return "CountedObject " + id;
12     }
13 
14     // 使用匿名内部类创建对象生成方法
15     public static Generator<CountedObject> generate() {
16         return new Generator<CountedObject>() {
17             @Override
18             public CountedObject next() {
19                 return new CountedObject();
20             }
21         };
22     }
23 }
1         // 下面的例子是对Java泛型(3):泛型方法中例(2)的修改。
2         Generator<CountedObject> gen = CountedObject.generate();
3         for (int i = 0; i < 3; i++) {
4             System.out.println(gen.next());
5             // CountedObject 1
6             // CountedObject 2
7             // CountedObject 3
8         }