类型不匹配。在java中无法从字符串转换为学生
一个完全没有问题的问题。我正在尝试从类型不匹配。在java中无法从字符串转换为学生,java,types,type-conversion,type-mismatch,Java,Types,Type Conversion,Type Mismatch,一个完全没有问题的问题。我正在尝试从扫描仪转换为学生类型。这是我学术作业的一部分,因此,我不允许将getStudent()方法的返回类型更改为字符串。有什么意见吗?谢谢 public Student getStudent() { Scanner sc = new Scanner(System.in); Student name = sc.nextLine(); return name; } 之所以这样做,可能是因为Student类只有一个name字段。你以为你可以返回
扫描仪
转换为学生
类型。这是我学术作业的一部分,因此,我不允许将getStudent()
方法的返回类型更改为字符串。有什么意见吗?谢谢
public Student getStudent() {
Scanner sc = new Scanner(System.in);
Student name = sc.nextLine();
return name;
}
之所以这样做,可能是因为
Student
类只有一个name
字段。你以为你可以返回一个名字来假装是学生,是吗?但Java不是这样工作的。Java的类型系统是静态的、显式的和安全的。这意味着您不能仅仅欺骗Java,您必须指定正确的类型
现在,如果您的学生
类还没有构造函数,请添加一个构造函数。也许是这样的:
public Student (String name) {
this.name = name;
// If you have other fields, assign them here.
}
现在在您的方法中,删除返回名称代码>并将其替换为
return new Student (name);
总结你的错误:
String
和另一个类是完全不同的类型。虽然Student
类只有一个类型为String
的字段,但我不认为您正在将Scanner
转换为Student
。您正在将String
转换为Student
是的,您是对的。非常感谢。