谁能告诉我如何将 getter 和 setter 放在下面的代码中,以及 getter 和 setter 到底做了什么
Can anyone tell how can i put getter and setter on the below code, and what exactly getter and setter do
public class perform{
public static void Main(String args[]) throws IOException
{
perform obj = new perform();
obj.run();
}
public void run() throws IOException
{
String inputfile= "c:/file_adress";
List<String> field = null;
String delimeter = ";";
String line="";
BufferedReader br = new BufferedReader(new FileReader(inputfile));
while((line=br.readLine())!=null)
{
field = new ArrayList<String>();
field=Arrays.asList(line.split(delimeter));
for (String object : field) {
System.out.println( "-->" + object + "\n");
}
}
}
}
现在,当我尝试在此代码上放置 getter 和 setter 时,请右键单击该代码,然后转到源菜单。它给出错误 -
"The Operation is not applicable to the current selection. Select a field which is not declared as type variable or a type that declares such fields."
任何人都可以帮助我添加 getter 和 setter 以及为什么使用它们需要进行哪些更改。
Getters & Setters 是用于数据隐藏的过程。如果您的 class 有任何 class 级别变量并且无法访问外部环境(因为数据成员通常是私有的),那么访问该数据是通过 getter 和 setter 提供。例如,如果我有一个 class 变量 private int id;
然后通过 getId()
和 setId()
方法提供对该变量的访问。
getter 将 return 变量的当前值,setter 将更新变量的值。
在上面的代码中,您收到错误消息,因为您的 class 没有任何 class 级别变量。您声明的所有变量都是该方法的局部变量,它们对 class.
不可见
Getter 和 setter 分别检索和操作 class 中封装的变量。由于您没有封装变量,因此没有理由在您的代码中实现它们。
您只能为 class 变量添加 getter 和 setter。在您的代码中,class 是 perform
,它有两个方法 - Main()
和 run()
。您在代码中以及 Main()
或 run()
中使用的所有变量。因此,这些是局部方法变量,而不是 class 变量。
getter 和 setter 方法允许您有效地管理其他外部 class 对 class 变量的访问。您的本地方法变量不会被其他外部 classes 访问。此外,一个方法中的局部变量不能在另一个方法中直接访问,即使它在同一个方法中也是如此 class 因为局部变量仅在声明的方法中有效。
为什么需要这些?请阅读此Whosebug中给出的解释post - what is the point of getters and setters
我遇到了同样的问题。
可能您没有在 class 的源代码区域内正确单击。
您可以通过右键单击项目探索中的 class 名称和 select->source->Generate Getters and Setters...
来解决此错误
发生这种情况的主要原因是在尝试在 main 方法中实现变量时。
尝试将变量写在 main 方法之外并生成 getter 和 setter 方法
public class perform{
public static void Main(String args[]) throws IOException
{
perform obj = new perform();
obj.run();
}
public void run() throws IOException
{
String inputfile= "c:/file_adress";
List<String> field = null;
String delimeter = ";";
String line="";
BufferedReader br = new BufferedReader(new FileReader(inputfile));
while((line=br.readLine())!=null)
{
field = new ArrayList<String>();
field=Arrays.asList(line.split(delimeter));
for (String object : field) {
System.out.println( "-->" + object + "\n");
}
}
}
}
现在,当我尝试在此代码上放置 getter 和 setter 时,请右键单击该代码,然后转到源菜单。它给出错误 - "The Operation is not applicable to the current selection. Select a field which is not declared as type variable or a type that declares such fields."
任何人都可以帮助我添加 getter 和 setter 以及为什么使用它们需要进行哪些更改。
Getters & Setters 是用于数据隐藏的过程。如果您的 class 有任何 class 级别变量并且无法访问外部环境(因为数据成员通常是私有的),那么访问该数据是通过 getter 和 setter 提供。例如,如果我有一个 class 变量 private int id;
然后通过 getId()
和 setId()
方法提供对该变量的访问。
getter 将 return 变量的当前值,setter 将更新变量的值。
在上面的代码中,您收到错误消息,因为您的 class 没有任何 class 级别变量。您声明的所有变量都是该方法的局部变量,它们对 class.
不可见Getter 和 setter 分别检索和操作 class 中封装的变量。由于您没有封装变量,因此没有理由在您的代码中实现它们。
您只能为 class 变量添加 getter 和 setter。在您的代码中,class 是 perform
,它有两个方法 - Main()
和 run()
。您在代码中以及 Main()
或 run()
中使用的所有变量。因此,这些是局部方法变量,而不是 class 变量。
getter 和 setter 方法允许您有效地管理其他外部 class 对 class 变量的访问。您的本地方法变量不会被其他外部 classes 访问。此外,一个方法中的局部变量不能在另一个方法中直接访问,即使它在同一个方法中也是如此 class 因为局部变量仅在声明的方法中有效。
为什么需要这些?请阅读此Whosebug中给出的解释post - what is the point of getters and setters
我遇到了同样的问题。
可能您没有在 class 的源代码区域内正确单击。
您可以通过右键单击项目探索中的 class 名称和 select->source->Generate Getters and Setters...
来解决此错误发生这种情况的主要原因是在尝试在 main 方法中实现变量时。 尝试将变量写在 main 方法之外并生成 getter 和 setter 方法