Java-理解私有最终自定义类型的返回类型
我试图理解下面的代码,其中返回类型被视为不兼容Java-理解私有最终自定义类型的返回类型,java,Java,我试图理解下面的代码,其中返回类型被视为不兼容 return new PassLine(One, Two, roll); incompatible types: PassLine cannot be converted to TheDie 希望有人能给我一些启示,这样我就可以继续了 我希望得到dieOne+dieTwo的总人数 public class PassLine { private int thePoint; private final TheDie dieOne
return new PassLine(One, Two, roll);
incompatible types: PassLine cannot be converted to TheDie
希望有人能给我一些启示,这样我就可以继续了
我希望得到dieOne+dieTwo的总人数
public class PassLine {
private int thePoint;
private final TheDie dieOne;
private final TheDie dieTwo;
private final TheDie rollTheDie;
public PassLine(TheDie dieOne, TheDie dieTwo, TheDie rollTheDie) {
super();
this.dieOne = dieOne;
this.dieTwo = dieTwo;
this.rollTheDie = rollTheDie;
}
public TheDie dieOne() {
TheDie obj = new TheDie();
obj.rollTheDie();
return dieOne;
}
public TheDie dieTwo() {
TheDie obj = new TheDie();
obj.rollTheDie();
return dieTwo;
}
public TheDie rollTheDie() {
dieOne();
dieTwo();
return rollTheDie;
}
public PassLine passLine() {
TheDie One = dieOne();
TheDie Two = dieTwo();
TheDie roll = rollTheDie();
return new PassLine(One, Two, roll);
}
public static void main(String[] args) {
System.exit(0);
}
}
从公开课到最后一节课
public int rollTheDie() {
Random rand = new Random();
oneDie = rand.nextInt(6) + 1;
return oneDie;
}
新的错误消息如下所示:
关于:
返回新的通行线(一、二、滚)
错误:
Incompatible Type: TheDiecannot be converted to String
Incompatible Type: TheDiecannot be converted to String
Introduce...
May split declaration into a declaration and assignment
Flip operands of the binary operator
这个错误再清楚不过了
public TheDie PassLine() {
TheDie One = dieOne();
TheDie Two = dieTwo();
TheDie roll = rollTheDie();
return new PassLine(One, Two, roll);
}
指定该方法应返回一个die
对象,同时返回一个PassLine
对象
根据您的错误消息
不兼容类型:无法将PassLine转换为die
两种类型都不兼容,请将方法更改为
public PassLine PassLine() {
TheDie One = dieOne();
TheDie Two = dieTwo();
TheDie roll = rollTheDie();
return new PassLine(One, Two, roll);
}
也许你真的想通过调用一个方法来返回一个
TheDie
,该方法在新的PassLine
对象上返回TheDie
。你有两种不同的类类型:TheDie和PassLine。假设TheDie不是从PassLine扩展的类,那么您将拥有不兼容的类型
public TheDie PassLine() {
...
return new PassLine(One, Two, roll);
}
方法头声明您应该返回一个die的对象 在您的代码中:
public TheDie PassLine() {
TheDie One = dieOne();
TheDie Two = dieTwo();
TheDie roll = rollTheDie();
return new PassLine(One, Two, roll);
}
您正在尝试将PassLine作为die返回。
将
public-TheDie-PassLine()
更改为public-PassLine-PassLine()
方法PassLine
(奇数名称,与类同名…)声明为返回TheDie
对象,但返回PassLine
对象,因此会出现错误
您必须将方法的返回类型更改为PassLine
,或返回一个die
对象
您真的希望有一个与类同名的方法吗?它不是一个编辑不好的构造函数吗
请注意:Java命名约定是:
- 包名称和方法名称的lowerCamelCase
- 类和接口名称的大写字母
您有一个带有方法的类
PassLine
(应该是PassLine
)很好,谢谢您的解释。现在返回正确的类型时,它会说——不兼容的类型:TheDie不能转换为String——这修改了错误type@S_HereToLearn请发布您的新返回声明。@S_在此了解您的新方法是否正确。也许有一种方法您没有添加在返回字符串的地方,而您应该返回一个PassLine
?您当前的类对我来说编译得很好。@S_此处根据您的代码学习,您不应该像您期望的那样使用字符串
。你试过做一个干净的n型吗?看起来编译后的代码和你给我们看的不一样。谢谢你对定义的帮助。这是一个明确的解释该方法已命名为passLine
,passLine
是否为返回类型。现在是,在编辑之前,有一个passLine
方法,返回类型为TheDie