爲您的代碼
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可能會對您有所幫助。
這應該是直接或間接地實現該接口的類,或擴展它的接口。 – RealSkeptic
你不必定義S,A類 –
@ThatithaThilinaDayaratne使用原始類型是真的氣餒,雖然 – Joffrey