kopia lustrzana
https://github.com/eclipse-aspectj/aspectj.git
synced 2024-08-26 17:58:43 +02:00
41 wiersze
1.1 KiB
Java
41 wiersze
1.1 KiB
Java
import org.aspectj.testing.Tester;
|
|
import java.util.*;
|
|
public class BindingInterfaces {
|
|
public static void main(String[] args) {
|
|
new BindingInterfaces().realMain(args);
|
|
}
|
|
public void realMain(String[] args) {
|
|
|
|
I i0 = new I(){}; Tester.checkEqual(str(i0), "I", "i0");
|
|
I ij = new J(){}; Tester.checkEqual(str(ij), "JI", "ij");
|
|
I ik = new K(){}; Tester.checkEqual(str(ik), "KJI", "ik");
|
|
|
|
J j0 = new J(){}; Tester.checkEqual(str(j0), "JI", "j0");
|
|
J jk = new K(){}; Tester.checkEqual(str(jk), "KJI", "jk");
|
|
|
|
K k0 = new K(){}; Tester.checkEqual(str(k0), "KJI", "k0");
|
|
}
|
|
|
|
private String str(Object o) {
|
|
return str(o.getClass().getInterfaces()[0]);
|
|
}
|
|
|
|
private String str(Class c) {
|
|
String str = c.getName();
|
|
Class[] is = c.getInterfaces();
|
|
for (int i = 0; i < is.length; i++) {
|
|
str += str(is[i]);
|
|
}
|
|
return str;
|
|
}
|
|
}
|
|
|
|
interface I {}
|
|
interface J {} //extends I {}
|
|
interface K {} //extends J {}
|
|
|
|
aspect Aspect {
|
|
declare parents: J implements I;
|
|
declare parents: K implements J;
|
|
}
|