Я печатал, и мне интересно, как я могу вызвать метод по умолчанию в статическом контексте, у меня есть такой фрагмент кода.
interface InterfaceWithDefaultMethod{
public default void saySomething(final int a,final int b){System.out.println(String.format("Parameters are %d %d",a,b));}
}
public class StaticsMethodIsNotOverriden2 implements InterfaceWithDefaultMethod {
public static void main(String[] args) {
final StaticsMethodIsNotOverriden2 clazz = new StaticsMethodIsNotOverriden2();
clazz.saySomething(13,20);//Overriden method call with 13 20
clazz.callDefaultSaySomethingFromInstance();//Parameters are 1 2
/*HOW CALL public default void saySomething(final int a,final int b) METHOD HERE....????*/
clazz.InterfaceWithDefaultMethod.super.saySomething(1, 2);/*no enclosing instance of type InterfaceWithDefaultMethod is in scope*/
}
@Override
public void saySomething(int a, int b) {
System.out.println(String.format("Overriden method call with %d %d",a,b));
}
//THIS IS WHAT A WANT TO DO BUT IN STATIC CONTEXT...
private void callDefaultSaySomethingFromInstance(){
InterfaceWithDefaultMethod.super.saySomething(1, 2); /*CALLING DEFAULT METHOD FROM INSTANCE CONTEXT*/
}
}
Можно вызвать метод по умолчанию InterfaceWithDefaultMethod-> saySomething из методастатический контекст с использованием экземпляра StaticsMethodIsNotOverriden2 ??
Извините, если вопрос прост.
Это не работает.