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
如何将Java泛型转换为kotlin语言泛型_Kotlin - Fatal编程技术网

如何将Java泛型转换为kotlin语言泛型

如何将Java泛型转换为kotlin语言泛型,kotlin,Kotlin,如何将Java泛型转换为kotlin语言泛型 java代码: public abstract class Request<T, R extends Request> implements Serializable {} 公共抽象类请求实现可序列化{} 但是kotlin代码:怎么做?您可以直接使用并获取 抽象类:可序列化 但是第二个请求(在扩展请求中的一个)是一个不应该在Java中使用的请求,并且在Kotlin中不受支持。很可能应该是请求;然后翻译在Kotlin中也使用了Requ

如何将Java泛型转换为kotlin语言泛型

java代码:

public abstract class Request<T, R extends Request> implements Serializable {}
公共抽象类请求实现可序列化{}
但是kotlin代码:怎么做?

您可以直接使用并获取

抽象类:可序列化

但是第二个
请求
(在
扩展请求
中的一个)是一个不应该在Java中使用的请求,并且在Kotlin中不受支持。很可能应该是
请求
;然后翻译在Kotlin中也使用了
Request

公共抽象类请求实现了可序列化的{}

我们有两种泛型
T
,它可以通过任何类型和必须扩展
请求的
R
。但是,
请求
仍然需要两个参数

在Java中,它更简单,因为泛型没有那么严格,我们可以使用原始类型

在科特林,情况是这样的:
抽象类请求根据我的需要,我最终实现了这种方式

Open abstract class Request < T, out R > (url: String): Serializable where R: Request < T, R > {}
Open class GetRequest < T > (url: String): Request < T, GetRequest < T > (url){
打开抽象类请求(url:String):可序列化,其中R:Request{}
打开类GetRequest(url:String):Request(url){

}

“公共抽象类请求实现可序列化”,如何使用kotlin语言转换此请求?测试此>>>问题:string这里有什么问题?到目前为止您做了什么?“此类型参数违反了有限界限制。”这是编译器在尝试使用两个通配符时抛出的错误。事实上,我不方便有
Request
-我看到一些用例中第二个类型参数应该在
Request
范围内。非常感谢您的帮助。根据我的需要,我终于做到了这一点。开放抽象类请求(url:String):可序列化,其中R:Request{}开放类GetRequest(url:String):Request(url){}非常感谢您的帮助。我从你的帮助中学到了一些新知识。根据我的需要,我终于意识到了这一点。打开抽象类请求(url:String):可序列化,其中R:Request{}打开类GetRequest(url:String):Request(url){}
abstract class Request<T, R : Request<*, R>> : Serializable {
    abstract val dummy: R
}

class ExampleRequest<T, N> : Request<T, ExampleRequest<T, N>>() {
    override val dummy: ExampleRequest<T, N> get() = this
}
Open abstract class Request < T, out R > (url: String): Serializable where R: Request < T, R > {}
Open class GetRequest < T > (url: String): Request < T, GetRequest < T > (url){