Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为具有任意或泛型的函数定义多数据类型?_Android_Kotlin_Generics - Fatal编程技术网

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的字符串表示),这里的开销是多少(这里需要强制转换什么)?无论在何处调用此函数,您都需要特定数据类型中的数据,因此您必须将其从任何开销转换为该数据类型,另一方面,如果使用通用方法,您将在括号中传递特定数据类型,并且它将自动返回传入的类型。因此,没有开销