Это действительно не связано, но если я должен асинхронно вызывать метод, например. 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();
}
Я тестировал это, и он работает. Просто подумал, что это может помочь другим, если они просто пришли для «асинхронного метода».