我正在为一款源自尼泊尔的游戏制作一个基于树的人工智能,名为老虎和山羊(或老虎和绵羊)。我现在开始为树创建类,但是我遇到了一个错误,我的构造函数是相同的,尽管它们使用不同类型的列表。
这是我的两个构造函数:
public MoveTree(List<MoveTree> children, MoveTree parent)
{
this.children = children;
this.parent = parent;
}
public MoveTree(List<Move> moves, MoveTree parent)
{
this.moves = moves;
this.parent = parent;
}
我如何在仍然有两个构造函数的情况下避免这个错误?我希望能够在不过多更改构造函数的情况下做到这一点,这样我就可以用不同的方式为不同的目的实现这个类
你不能两者兼得。使用构建器模式(正式样式-此处未显示)或工厂方法(更容易显示):
private MoveTree(MoveTree parent) {
this.parent = parent;
}
public static MoveTree createWithMoveTree(List<MoveTree> children, MoveTree parent) {
MoveTree moveTree = new MoveTree(parent);
moveTree.children = children;
return moveTree;
}
public static MoveTree createWithMoves(List<Move> moves, MoveTree parent) {
MoveTree moveTree = new MoveTree(parent);
moveTree.moves = moves;
return moveTree;
}
我的问题是关于OOP(C)中的构造函数。当我在一个类中将默认构造函数定义为private,并且在main中将该类的一个对象初始化为default时,就会出现默认构造函数不可访问的错误。这很好。但我也在Public部分中使用默认参数构造函数,当我再次在main中初始化对象时,就会出现对函数重载的不明确调用。所以我的问题是,如果不能从main访问私有构造函数,那么编译器应该调用公共部分中的构造函数,这
Spring文档说: 每个类只能标记一个带注释的构造函数,但是可以注释多个非必需的构造函数。在这种情况下,每个都被认为是候选的,Spring使用最贪婪的构造函数,其依赖关系可以得到满足——也就是说,具有最多参数的构造函数。构造函数解析算法与具有重载构造函数的非注释类相同,只是将候选对象缩小为注释构造函数。 我测试了它,当我有另一个由 错误: 组织。springframework。豆。工厂BeanC
****代码如下所示****
请问这样的构造函数如何实现?
我想使它从“游戏26”类到“游戏39”类,如果用户经历了从“游戏17”类到“游戏18”类。但如果用户没有通过,要使从“Game26”类到“Game30”类。
问题内容: 这些来自github上的spring amqp示例,位于https://github.com/SpringSource/spring-amqp- samples.git 这些是 什么类型的Java构造函数?它们是吸气剂和吸气剂的捷径吗? 与此相反 问题答案: 这些构造函数被重载以使用调用另一个构造函数。第一个无参数构造函数使用空参数调用第二个。第二呼叫的第三构造(未示出),其必须采取,