我想使用此方法返回一个Course对象,但前提是该对象不为null.
public Course getClass1()
{
if(class1 != null)
{
return class1;
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个'缺少返回语句'错误,因为它可能不会返回任何内容,但如果对象为null,我不想返回任何内容,甚至不返回空字符串.我可以将方法更改为void
public void getClass1()
{
if(class1 != null)
{
System.out.println(class1);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我这样做,我无法调用toString中的方法
public String toString()
{
return super.getName() + "\t" + super.getAge() + "\t" + getStudentNumber() +
"\n" + getClass1() + "\n" + getClass2() + "\n" + getClass3();
}
Run Code Online (Sandbox Code Playgroud)
因为不允许使用void类型.
您不能有两种不同的返回类型,您的方法必须返回特定类型或没有(void).
这里唯一可行的解决方案是让它返回Course,或者null如果没有可用的课程.
public Course getClass1() {
return class1;
}
public String toString() {
Course class1 = getClass1();
boolean class1Available = class1 != null;
if (class1Available) {
// something
else {
// something else
}
}
Run Code Online (Sandbox Code Playgroud)