Вызов метода интерфейса
public interface BusinessRulesInterface {
void select();
void input(String UserName, String UID);
}
Методы этого интерфейса реализуются в другом класса, примерно так:
public class InterfaceRealization extends AppCompatActivity implements BusinessRulesInterface {
@Override
public void select() {
Toast.makeText(this, "Нажата кнопка Select", Toast.LENGTH_LONG);
}
@Override
public void input(String UserName, String UID) {
Toast.makeText(this, "Input: " + UserName +" " + UID, Toast.LENGTH_LONG);
}
}
Пробую обратиться к методам select() и input() этого интерфейса, из внешнего класса так:
public class BusinessRules {
public void business_rules(int action, String UserName, String UID) {
switch (action) {
case (1):
BusinessRulesInterface.select();
break;
case (2):
BusinessRulesInterface.input(UserName, UID);
break;
}
}
}
но среда (Android Studio) не позволяет этого сделать. Как обратиться к методам select() и input() интерфейса из внешнего класса?
Ответы (1 шт):
Автор решения: стасевич
→ Ссылка
BusinessRulesInterface.select();
это обращение через класс, следовательно надо сам метод делать статичным.
если надо просто вызвать метод как select();
надо реализовывать следующим образом
public class BusinessRules implements BusinessRulesInterface
и в теле класса переопределять метод
@Override
public void select() {
// что-то делаем
}
если не переопределять, можно в самом интерфейсе сделать дефолтную реализацию
default void select(){
// делать что-то
}
через анонимный класс
new InterfaceRealization() {
@Override
public void select() {
// делать -что-то
}
};
}
