我正在使用 Xtend 编写一个 Android 应用程序,并且我想使用 elvis 运算符来简化以下操作(可行):
val c = if (projection != null) new MatrixCursor(projection) else new MatrixCursor(#[MediaStore$MediaColumns::DISPLAY_NAME, MediaStore$MediaColumns::SIZE])
通过使用 elvis 运算符,我写道:
val c = new MatrixCursor(projection ?: #[MediaStore$MediaColumns::DISPLAY_NAME, MediaStore$MediaColumns::SIZE])
据我了解,它的工作方式相同。
但是,我在 Eclipse 中遇到了这个错误:Type mismatch: cannot convert from Object to String[]
它有什么问题?
我使用的是 Xtend 2.4,MatrixCursor
构造函数签名是MatrixCursor(String[])
, 并projection
明确定义为String[]
.