aboutsummaryrefslogtreecommitdiffstats
path: root/tests/java5/generics/ajdk/BridgeMethodExamples.aj
blob: cbf3e6411225487c51c66b6ea20dc8ed0c1b0cf0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public aspect BridgeMethodExamples {
	
	declare warning : execution(Object SubGeneric.foo(Object)) : "no match";
	declare warning : execution(Object Generic.foo(Object)) : "double match";
	declare warning : call(Object SubGeneric.foo(Object)) : "match";
	
	void foo() {
		SubGeneric rawType = new SubGeneric();
        rawType.foo("hi");  // call to bridge method (will result in a runtime failure in this case)
        Object n = new Integer(5);
        rawType.foo(n);     // call to bridge method that would succeed at runtime
	}
}

class Generic<T> {
	
	public T foo(T someObject) {
    	return someObject;
    }

}

class SubGeneric<N extends Number> extends Generic<N> {

    public N foo(N someNumber) {
      return someNumber;
    }

}