繁体   English   中英

扩展接口

[英]Extending an interface

我下载了一个代码,它具有如下所示的函数:

public class MDP<S, A extends Action> implements MarkovDecisionProcess<S, A> {
//some code...blah blah blah...
}

SA应该是某种type Action是一个interface

在我的代码中,我想使用给定的类MDP 因此,我必须定义SA ; 我将S定义为某个类,但我不知道如何定义A ...它不是一个类,它不是一个接口。 应该是什么?

谢谢 :)

“A”类型是一个实现扩展Action的接口的类。

为了你的代码

public class MDP<S, A extends Action> implements MarkovDecisionProcess<S, A> {
  //some code...blah blah blah...
}

SA是类型。 它们可以指代接口或类。 字母标识是任意的。 它们可以是任何字母。 这同样有效

public class MDP<Q, Z extends Action> implements MarkovDecisionProcess<Q, Z> {
  //some code...blah blah blah...
}

它只是说,“类MDP是一个参数化类,具有参数SA ,其中AAction某个子类,它实现了接口MarkovDecisionProcess<S,A> SA可能相同也可能不相同类型。”

为类提供类型参数时,可以缩小类型的特异性。 在这种情况下, S保持相同(就特异性而言),但是您将第二个参数缩小到某个Action实例。

可以在接口声明上使用这些类型。 然后可以将它们留在实例上。

public interface MarkovDecisionProcess<S,V extends Action>{}

public class MDP implements MarkovDecisionProcess{}

您可能会从阅读一些官方文档中受益。

关于MDP文档“Action”是一个接口:

public interface Action
Describes an Action that can or has been taken by an Agent via one of its Actuators.

看看文档: http//aima-java.github.io/aima-java/aima3e/javadoc/aima-core/aima/core/probability/mdp/impl/MDP.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM