Методы интерфейса по умолчанию поддерживаются только начиная с Android N

Это действительно не связано, но если я должен асинхронно вызывать метод, например. matches (), я бы использовал:

private final static ExecutorService service = Executors.newFixedThreadPool(10);
public static Future<Boolean> matches(final String x, final String y) {
    return service.submit(new Callable<Boolean>() {

        @Override
        public Boolean call() throws Exception {
            return x.matches(y);
        }

    });
}

Тогда для вызова асинхронного метода я бы использовал:

String x = "somethingelse";
try {
    System.out.println("Matches: "+matches(x, "something").get());
} catch (InterruptedException e) {
    e.printStackTrace();
} catch (ExecutionException e) {
    e.printStackTrace();
}

Я тестировал это, и он работает. Просто подумал, что это может помочь другим, если они просто пришли для «асинхронного метода».

149
задан Olcay Ertaş 17 April 2019 в 14:36
поделиться