Java 类变量与局部变量

Java 类变量与局部变量,java,Java,我有一个Bean类,它调用2个独立的DAO从DB中提取信息。这就是结构 class InfoRetriever { public String retrieveInfo(int arg1, int arg2){ String info = retrieveFirstInfo(arg1 , arg2); if(info.equals("xyz")){ retrieveSecondInfo(arg1, arg2); } } private

我有一个Bean类,它调用2个独立的DAO从DB中提取信息。这就是结构

class InfoRetriever {

public String retrieveInfo(int arg1, int arg2){
      String info = retrieveFirstInfo(arg1 , arg2);

      if(info.equals("xyz")){
          retrieveSecondInfo(arg1, arg2);
      }
}

private String retrieveFirstInfo(int arg1,String arg2){
     // call DB to get info
}

private String retrieveSecondInfo (int arg1, String arg2) {
    // call DB to get info
}

}
我的问题是,我可以选择将arg1和arg2作为成员元素移动,并且可以在调用retrieveFirstInfo和retrieveSecondInfo之前设置它们。我也可以将信息作为成员变量


如果可以选择将变量保持为方法变量与类变量的局部变量,则需要考虑哪些权衡。

如果
arg1
arg2
的任何值提供相同的
info
,那么,正确的方法是:

  • 生成
    info
    成员变量
  • 声明一个接受arg1和arg2以及参数的构造函数

不仅仅是权衡,你应该考虑这些参数是否真的是类的成员。他们属于那里吗?它们应该保持对象的状态吗?如果是的话,那么是的,一定要把它们做成字段。@rohit-That;这就是我的问题所在。现在这是一门服务/管理类课程。这些不是实体/真实世界的对象,因此我很难识别抽象。然后我会保持原样。如果它们不适合作为成员变量,那么将它们作为参数传递并没有什么错。另外,您的
retrieveInfo
方法也会从调用方接收这些参数,对吗?检查那里的语法。您缺少
()
。谢谢您。我将把信息作为成员元素,因为如果将来需要的话,我甚至可以使用getter提取这个中介信息。虽然我没有;在我的例子中,找不到任何使用构造函数的信息。