Android - 通用类型作为 ObservableTransformer 中的表达式
Android - Generic type as a Expressions In ObservableTransformer
我将在我的应用程序中使用 observable transformer 将数据从一种类型转换为另一种类型,因此为此我创建了一个带有一个参数 <T1>
的泛型 class,其中 T1 是类型 am期待得到输出
例子
class Transformer<T1> {
fun transform(): ObservableTransformer<String, T1> {
return ObservableTransformer { data ->
data.map {
if (T1 is Int) { //getting compilation error like T1 is not an expression
return IntDataType
}
if (T1 is Double) { //getting compilation error like T1 is not an expression
return DoubleDataType
}
}
}
}
}
上面的class是将输入作为字符串并根据给定的通用类型T1将String转换为someData类型的转换器
所以我会这样调用上面的内容
getSomeData()
.compose(Transformer<Double>().tranform())
.map{ it: double
}
是否有任何其他解决方案可以像这种类型的变压器一样执行?
任何帮助
T1 is Int
non-statement 不起作用,因为 T1
是通用类型,而 is Int
检查对象的类型:1 is Int
您可以编写一个专用转换器,而不是使用泛型。通常,您会在运行时丢失 T1
的类型信息。
fun Observable<String>.asDouble() = map { it.toDouble() }
getSomeData().asDouble().map { value: Double -> }
您甚至不需要实际的转换器,因为它是一个简单的映射。
我将在我的应用程序中使用 observable transformer 将数据从一种类型转换为另一种类型,因此为此我创建了一个带有一个参数 <T1>
的泛型 class,其中 T1 是类型 am期待得到输出
例子
class Transformer<T1> {
fun transform(): ObservableTransformer<String, T1> {
return ObservableTransformer { data ->
data.map {
if (T1 is Int) { //getting compilation error like T1 is not an expression
return IntDataType
}
if (T1 is Double) { //getting compilation error like T1 is not an expression
return DoubleDataType
}
}
}
}
}
上面的class是将输入作为字符串并根据给定的通用类型T1将String转换为someData类型的转换器
所以我会这样调用上面的内容
getSomeData()
.compose(Transformer<Double>().tranform())
.map{ it: double
}
是否有任何其他解决方案可以像这种类型的变压器一样执行? 任何帮助
T1 is Int
non-statement 不起作用,因为 T1
是通用类型,而 is Int
检查对象的类型:1 is Int
您可以编写一个专用转换器,而不是使用泛型。通常,您会在运行时丢失 T1
的类型信息。
fun Observable<String>.asDouble() = map { it.toDouble() }
getSomeData().asDouble().map { value: Double -> }
您甚至不需要实际的转换器,因为它是一个简单的映射。