在下面的代码中,我创建了一个callable,它在call() - 方法中创建了一个Runnable。我的问题是从未达到run() - 方法(代码没有被执行)。你知道为什么以及如何解决这个问题吗?
public static void main(String[] args) {
Callable<Object> c = new Callable<Object>() {
@Override
public Object call() throws Exception {
Runnable r = new Runnable() {
@Override
public void run() {
System.out.println("hi");
}
};
return null;
}
};
try {
c.call();
} catch (Exception e) {
}
}
答案 0 :(得分:0)
Callable<Object> c = new Callable<Object>() {
@Override
public Object call() throws Exception {
Runnable r = new Runnable() {
@Override
public void run() {
System.out.println("hi");
}
};
r.run();
return null;
}
};
try {
c.call();
} catch (Exception e) {
}
答案 1 :(得分:0)
你知道为什么......
已经由其他人解释过:您编写的代码创建了Runnable
实例,但您的代码在创建实例后不对该实例执行任何操作。您的代码不直接调用run()
方法,您的代码也不会将实例移交给调用该方法的任何其他对象。
......以及如何解决这个问题?
这取决于您希望代码做什么。有一种更简单的方法来编写打印&#34; hi&#34;如果那就是你想要的。
看起来你正在努力学习一些东西,但你还没告诉我们你想要学习什么。