我项目中的一些代码如下:
pool.execute(() ->
{
boolean flag = true;
while (flag)
{
if (ev3ColorSensor.getColorID() == Color.BLACK)
{
LuuMa.setSwitching(true);
int randomInt = randomGenerator.nextInt(5) + 1;
if (randomInt == 1)
{
try {
pause();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else if (randomInt == 2)
{
fastOff();
}
else if (randomInt == 3)
{
intimidate();
}
else if (randomInt == 4)
{
try {
peekFastOff();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else if (randomInt == 5)
{
psych();
}
else if (randomInt == 6)
{
try {
delay();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
LuuMa.setSwitching(false);
}
});
我正在研究lejos ev3项目。并且Lejos ev3不支持Java 8.因此,我必须使用Java 7在ev3砖上编译我的项目。
我需要使用pool.execute
进行并行处理。但Java 7并不支持它。如何解决问题,或者我可以在Java 7中使用哪种替代方案?
谢谢,
答案 0 :(得分:3)
您可以使用匿名内部类 - Java 7不支持lambda表达式,但它肯定支持并行执行。
pool.execute(new Runnable() {
@Override public void run() {
// Code here
}
});
显然,在这种情况下,将Callable
和run
更改为适当的接口和方法名称 - 我们不知道代码中pool
的类型。如果Java 7中不支持pool
的类型,则可以使用ExecutorService
之类的内容。