【发布时间】:2013-11-17 17:50:52
【问题描述】:
我正在从一个类中调用一个方法,它给了我一个错误以使该方法成为静态。我很困惑为什么,因为我问了这个问题What's the difference between a class variable and a parameter in a constructor?,我的理解是类变量是静态的。
患者类别:
public String setOption(String option) throws IOException
{
option = stdin.readLine();
//stuff here
return option;
}
患者管理系统:
public class PatientManagementSystem
{
static BufferedReader stdin = new BufferedReader(new InputStreamReader(
System.in));
public static void main(String[] args) throws IOException
{
Patient.setOption(null);
}
}
错误:
我是将方法更改为静态还是创建局部变量?
【问题讨论】:
-
将方法更改为
static的建议是错误的:它基于假设您的调用是正确的,但事实并非如此。 -
请注意,调用
setOption而不对其返回值做任何事情根本没有效果。 -
很难在没有看到您的患者课程的情况下判断。可能你有一些属性,比如
option。那么setOption应该将该选项设置为作为参数传递的值。从标准输入读取不应该在 setter 中完成。 -
与其描述你的错误,不如告诉我们你到底想要达到什么目的。
-
哪个 IDE 提出了这个建议?
标签: java eclipse methods static-methods