使用scanner在构造函数中调用set方法

问题描述 投票:-2回答:1

我试图在接受用户输入来实例化对象的构造函数中调用set方法。 set方法的示例如下:

public void setName(String name) {
    if(name.length()>0 && name.length()<25) {
        this.name = name;
    }
    else {System.out.println("Name length can not exceed 25 characters.");}
}

然后我想接受用户输入来实例化对象。我目前的格式如下:

public Character(String name){ name = setName(input.nextLine());}

我导入了扫描仪并创建了一个扫描仪对象。字符构造函数本身实际上非常大,它由29个变量组成,每个变量都有一个类似于第一个代码示例的set方法。

我的最终目标是将其放在GUI表单中供一个人填写。 Eclipse为我当前的语法提供的错误是“类型不匹配,无法从void转换为String”。

应该怎么做?

java input constructor method-call
1个回答
-1
投票

最简单的方法是修改你的代码,如下所示:

public String setName(String name) {
    if(name.length()>0 && name.length()<25) {
        this.name = name;
    }
    else {System.out.println("Name length can not exceed 25 characters.");}
    return name;
}
© www.soinside.com 2019 - 2024. All rights reserved.