Android 为具有任意或泛型的函数定义多数据类型?
我想在Android 为具有任意或泛型的函数定义多数据类型?,android,kotlin,generics,Android,Kotlin,Generics,我想在base中定义函数,并在child中使用什么是定义函数的最佳方法使用任何或通用 在第一种方法中,我们有如下内容: fun jsonObjectToRequestBody(item:Any):RequestBody{ return RequestBody.create(null, mGson.toJson(item)) } fun<T> jsonObjectToRequestBody(item:T):RequestBody{ return RequestBody
base
中定义函数
,并在child中使用什么是定义函数的最佳方法使用任何或通用
在第一种方法中,我们有如下内容:
fun jsonObjectToRequestBody(item:Any):RequestBody{
return RequestBody.create(null, mGson.toJson(item))
}
fun<T> jsonObjectToRequestBody(item:T):RequestBody{
return RequestBody.create(null, mGson.toJson(item))
}
在第二种
方法中,我们有如下内容:
fun jsonObjectToRequestBody(item:Any):RequestBody{
return RequestBody.create(null, mGson.toJson(item))
}
fun<T> jsonObjectToRequestBody(item:T):RequestBody{
return RequestBody.create(null, mGson.toJson(item))
}
第二种方法是,即通用更好,因为这将节省您从任何将数据转换为所需数据类型的开销。第二种方法是通用更好,因为这将节省您从任何将数据转换为所需数据类型的开销。
toJson
方法关心项的类型吗?它会以任何方式影响函数的返回类型吗?(似乎没有,因为RequestBody
不是通用的)不,它不关心项目的类型,正如您所说的RequestBody
不是通用的。那么有什么区别呢?如果没有区别,我想您可以使用Any
。如果泛型在任何地方都帮不了你,那就不需要使用泛型了。这要看情况而定。toJson
方法关心项的类型吗?它会以任何方式影响函数的返回类型吗?(似乎没有,因为RequestBody
不是通用的)不,它不关心项目的类型,正如您所说的RequestBody
不是通用的。那么有什么区别呢?如果没有区别,我想您可以使用Any
。如果泛型对您没有任何帮助,则无需使用泛型。感谢您的回答,但请详细解释并共享一个源代码。所需的数据类型是最终类型(Json的字符串表示),这里的开销是多少(这里的强制转换需要什么)?无论在何处调用此函数,您都需要特定数据类型中的数据,因此您必须将其从任何开销转换为该数据类型,另一方面,如果使用通用方法,您将在括号中传递特定数据类型,并且它将自动返回传入的类型。因此,不需要额外感谢您的答案,但请解释更多内容并共享源代码。所需的数据类型是最终类型(Json的字符串表示),这里的开销是多少(这里需要强制转换什么)?无论在何处调用此函数,您都需要特定数据类型中的数据,因此您必须将其从任何开销转换为该数据类型,另一方面,如果使用通用方法,您将在括号中传递特定数据类型,并且它将自动返回传入的类型。因此,没有开销