Renaud Pawlak f04583b7cb moved jsweet.util.Globals to jsweet.util.Lang
- keep but deprecate old API
- code cleaning/formatting
- test for #245
2017-04-20 14:49:52 +02:00

47 lines
887 B
Java

package source.structural;
import static source.structural.globalclasses.a.ClassWithStaticMethod.aStaticMethod;
import static jsweet.util.Lang.$export;
import def.js.Array;
import source.structural.globalclasses.a.ClassWithStaticMethod;
public class DefaultMethods<U> implements IDefaultMethods<U> {
static Array<String> trace = new Array<String>();
public static void main(String[] args) {
new DefaultMethods<String>().m("");
new DefaultMethods<String>().m2();
$export("trace", trace.join());
}
@Override
public void m1() {
trace.push("m1");
}
@Override
public void m2() {
DefaultMethods.trace.push("m2-overriden");
}
}
interface IDefaultMethods<T> {
default void m(T t) {
DefaultMethods.trace.push("m");
aStaticMethod();
m1();
}
default void m2() {
DefaultMethods.trace.push("m2");
ClassWithStaticMethod.aStaticMethod();
}
void m1();
}