我下载的代码的功能如下:
public class MDP<S, A extends Action> implements MarkovDecisionProcess<S, A> {
//some code...blah blah blah...
}
S
和A
应该是某种type
。 Action
是interface
。
在我的代码中,我想使用给定的类MDP
。因此,我必须定义S
和A
;我将S
定义为某个类,但我不知道如何定义A
...它不是一个类,它不是一个接口。应该是什么样的?
谢谢:)
答案 0 :(得分:3)
“A”类型是一个实现扩展Action的接口的类。
答案 1 :(得分:1)
代码
public class MDP<S, A extends Action> implements MarkovDecisionProcess<S, A> {
//some code...blah blah blah...
}
S
和A
是类型。它们可以指代接口或类。字母标识是任意的。它们可以是任何字母。这同样有效
public class MDP<Q, Z extends Action> implements MarkovDecisionProcess<Q, Z> {
//some code...blah blah blah...
}
它只是说,“类MDP
是一个参数化类,其参数为S
和A
,其中A
是Action
的某个子类,它实现了接口MarkovDecisionProcess<S,A>
。S
和A
可能是也可能不是同一类型。“
当您为类提供类型参数时,可以缩小类型的特异性。在这种情况下,S
保持不变(就特异性而言),但您将第二个参数缩小到Action
的某个实例。
可以在接口声明上使用这些类型。然后可以将它们留在实例上。
public interface MarkovDecisionProcess<S,V extends Action>{}
public class MDP implements MarkovDecisionProcess{}
阅读部分official documentation可能会让您受益匪浅。
答案 2 :(得分:1)
关于MDP文档&#34; Action&#34;是一个界面:
public interface Action
Describes an Action that can or has been taken by an Agent via one of its Actuators.
查看文档:{{3}}