类型不匹配。在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
是的,您是对的。非常感谢。