我需要通过触摸按钮来更改形状类型。我尝试了这种方法,但我得到了一个错误,即形状类型不能转换为布尔值。代码:
public class MainActivity extends AppCompatActivity {
private ArFragment arFragment;
private enum ShapeType {
GIRAFFE,
HIPPO,
ELEPHANT
}
private ShapeType shapeType = ShapeType.GIRAFFE;
@SuppressLint("ClickableViewAccessibility")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
arFragment = (ArFragment) getSupportFragmentManager().findFragmentById(R.id.fragment);
Button giraffe = findViewById(R.id.giraffebutt);
Button hippo = findViewById(R.id.hippobutt);
Button elephant = findViewById(R.id.elephantbutt);
giraffe.setOnTouchListener(view -> shapeType = ShapeType.GIRAFFE);
hippo.setOnTouchListener(view ->shapeType = ShapeType.HIPPO);
elephant.setOnTouchListener(view ->shapeType = ShapeType.ELEPHANT);
}
}
错误:
Bad return type in lambda expression: ShapeType cannot be converted to boolean
该按钮的setOnTouchListener提供了一个视图和运动事件,需要一个布尔返回类型。
giraffe.setOnTouchListener((view, event) -> {
shapeType = ShapeType.GIRAFFE);
return true; // return true if event is consumed, false otherwise
});
您的onTouch()
方法现在需要返回一个布尔值,您不会返回任何东西,请按如下所示更改lambda。
giraffe.setOnTouchListener(
(view, motionEvent) -> {
shapeType = ShapeType.GIRAFFE;
return false;
});
为什么会发生异常'lambda表达式中的ad返回类型:AuthenticatedUser无法转换为User'?如果可选为空,我只想返回此AuthenticatedUser。
如果会发生重复,我需要确认数据。但不能这样做。 在这种情况下,是否可以将字符串转换为对象,或通过另一个表达式连接该数据? 我有一个问题:
将异常获取为 :lambda表达式中的返回类型错误:
以下代码在IntelliJ和Eclipse中编译得很好,但JDK编译器1.8.0\u 25对此表示不满。首先,代码。 javac 1.8.0\u 25的输出为: 当我更换时?超级E只需使用E,JDK就能成功编译。 当我将替换为,JDK编译成功。 由于它适用于JDK 1.8.0_60,我怀疑它是编译器错误。 有没有详细说明是什么原因造成的以及何时修复的?
我试图通过加速,用java流编写一个查询。当我尝试在select中时,我得到以下错误: lambda表达式中的错误返回类型:BigDecimal不能转换为long。运算符-不能应用于int、BigDecimaljava.math.。 我的代码是这样的: 我该如何解决这个问题?
我有以下接口和类: 抽象规则类包含一组标准。我想通过评估每个标准来评估规则。我在标题中提到的c1.evaluate().和(c2.evaluate())上有编译错误。 我应该如何解决这个问题? 谢谢。