【问题标题】:Can anyone tell how can i put getter and setter on the below code, and what exactly getter and setter do谁能告诉我如何将 getter 和 setter 放在下面的代码中,以及 getter 和 setter 到底是做什么的
【发布时间】:2015-07-09 09:17:17
【问题描述】:
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 时,右键单击代码,然后转到源菜单。它给出了错误- “该操作不适用于当前选择。选择未声明为类型变量的字段或声明此类字段的类型。”

谁能帮助我添加 getter 和 setter 需要进行哪些更改以及使用它们的原因。

【问题讨论】:

  • 您要获取/设置哪些字段?你知道什么是 getter/setter 以及它们的作用吗?
  • 不,我不知道,你能告诉他们做什么
  • 如果您不知道它是什么,为什么还要尝试添加?
  • 你想添加 getter 和 setter 但你没有任何知识然后先去阅读它们,然后如果你有任何困惑,那么你可以在这里分享一些东西。

标签: java getter-setter


【解决方案1】:

Getter & Setter 是用于数据隐藏的过程。如果您的类有任何类级别变量并且无法访问外部环境(因为数据成员通常是私有的),那么通过 getter 和 setter 提供对该数据的访问。例如,如果我有一个类变量private int id;,那么可以通过getId()setId() 方法访问这个变量。

getter 将返回变量的当前值,setter 将更新变量的值。

在上面的代码中,您会收到错误消息,因为您的类没有任何类级变量。您声明的所有变量都是该方法的本地变量,它们对类不可见。

【讨论】:

  • 谢谢我现在知道了!!所以我必须声明类变量才能实现getter和setter方法
【解决方案2】:

Getter 和 setter 分别检索和操作类中封装的变量。由于您没有封装变量,因此没有理由在您的代码中实现它们。

【讨论】:

    【解决方案3】:

    您只能为类变量添加 getter 和 setter。在您的代码中,该类是 perform,它有两个方法 - Main()run()。您在代码中以及Main()run() 中使用的所有变量。因此,这些是局部方法变量,而不是类变量。

    getter 和 setter 方法允许您有效地管理其他外部类对类变量的访问。其他外部类不会访问您的本地方法变量。此外,一个方法中的局部变量不能在另一个方法中直接访问,即使它在同一个类中,因为局部变量只在它声明的方法中是活动的。

    为什么需要这些?请阅读此 stackoverflow 帖子中给出的解释 - what is the point of getters and setters

    【讨论】:

    • 谢谢我现在知道了:)
    • 太棒了!如果你得到了你想要的答案,请接受这个答案或你认为最合适的答案。
    【解决方案4】:

    我也遇到过同样的问题。

    也许你没有在类的源代码区域内正确点击。

    您可以通过右键单击项目探索中的类名并选择->source->Generate Getters and Setters...来解决此错误...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-21
      • 1970-01-01
      • 2011-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-23
      • 2015-05-01
      相关资源
      最近更新 更多