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放在此代码上时,右键单击代码然后转到源代码菜单。它给出了错误 - &#34;操作不适用于当前选择。选择未声明为类型变量的字段或声明此类字段的类型。&#34;
任何人都可以帮助我添加getter和setter以及使用它们的原因。
答案 0 :(得分:2)
Getters&amp; Setter是用于数据隐藏的过程。如果您的类具有任何类级别变量且无法访问外部环境(,因为数据成员通常是私有的),则通过getter和setter提供对该数据的访问。例如,如果我有一个类变量private int id;
,则可以通过getId()
和setId()
方法访问此变量。
getter将返回变量的当前值,setter将更新变量的值。
在上面的代码中,您收到错误消息,因为您的类没有任何类级别变量。您声明的所有变量都是该方法的本地变量,它们无法看到该类。
答案 1 :(得分:2)
Getters和setter分别检索和操作类中的封装变量。由于您没有封装变量,因此没有理由在代码中实现它们。
答案 2 :(得分:0)
您只能为类变量添加getter和setter。在您的代码中,该类为perform
,它有两种方法 - Main()
和run()
。您在代码中以及Main()
或run()
中使用的所有变量。因此,这些是局部方法变量,而不是类变量。
getter和setter方法允许您有效地管理其他外部类对类变量的访问。其他外部类不会访问您的本地方法变量。此外,一个方法中的局部变量不能在另一个方法中直接访问,即使它在同一个类中,因为局部变量只在声明它的方法中存在。
为什么需要这些?请阅读此stackoverflow帖子中给出的解释 - what is the point of getters and setters