我正在编写一个准系统游戏,我想用关键字轻松构建“怪物”,而不是每次都输入所有属性。
class Target {
public Target(String code) {
if (code.equals("biggest boss")) {
this.(code, 50);
} else if (code.equals("minion")) {
this.(code, 4);
}
}
public Target(String name, int health
/*various other attributes here */) {
this.name = name;
this.health = health;
}
String name;
int health;
}
但当然,当我运行此操作时,我收到错误call to this must be first statement in constructor
。有什么建议?谢谢!
答案 0 :(得分:4)
没有“绕过它”。假设您只有两个条件,那么可以执行
this(code, "biggest boss".equals(code) ? 50 : 40);
或使用Map<String, Integer>
和map.get(code)
来解析该值 - 但如果要调用另一个构造函数,this
必须是第一行现在的课程。
答案 1 :(得分:1)
为什么你需要什么时候才能做到
public Target(String code) {
this.code = code;
if (code.equals("biggest boss")) {
this.health = 50;
} else if (code.equals("minion")) {
this.health = 4;
}
}