如何将一种方法的变量访问到另一种方法?

时间:2017-04-21 12:15:28

标签: java

我正在创建android应用程序。我创建了一个方法testMethod1()然后我创建了另一个方法testMethod2()。我在testMethod1()声明了类的对象。如何访问obj中的对象testMethod2()

Public class TestClass() {

    public void testMethod1() {
        final ModalClass obj = new ModalClass();
        testMethod2();
    }

    public void testMethod2() {
        //I want to access 'obj' here
    }
}

已编辑的排名

我为listview创建了模态。我想将数据设置为listview,如下所示。但我无法访问locationDet到另一种方法。它显示can not resolve symbol 'locationDet'

 Public class TestClass() {
 private List<LocationDetailModel> LocationDetailList = new 
 ArrayList<LocationDetailModel>();

 public void testMethod1() {

  JSONArray results = response.getJSONArray("results");
  for (int i = 0; i < results.length(); i++) {

  final LocationDetailModel locationDet = new LocationDetailModel();
  locationDet.setTitle(obj.getString("name"));
            testMethod2();
  LocationDetailList.add(locationDet);
  }

 }

  public void testMethod2() {
            //I want to access 'obj' here

         locationDet.setRating(results.getInt("rating"));
        }
}

3 个答案:

答案 0 :(得分:1)

您有两种选择: 1.使Variavble类知道如下:

       Public class TestClass(){

             final ModalClass var = new ModalClass();

                public void testMethod1() {

                 var = new ModalClass();
                    testMethod2();
              }

              public void testMethod2() {
                    //I want to access 'var' here
          } 
}

或者你给你的Var测试这样的methode2:

Public class TestClass()
{
    public void testMethod1() {

    final ModalClass var = new ModalClass();
        testMethod2(var);
    }

    public void testMethod2(ModalClass var) {
        //I want to access 'var' here
    }
}

答案 1 :(得分:1)

您可以将ModalClass var作为私人属性:

Public class TestClass(){

  private final ModalClass var;
  public void testMethod1() {

  this.var = new ModalClass();
      testMethod2();
  }

  public void testMethod2() {
    //I want to access 'var' here
  }
}

答案 2 :(得分:0)

您可以访问范围内且可见的变量。在您的情况下,您有一个local变量,您希望在另一种方法中使用该变量。

  1. 您可以将其作为方法参数传递。为此,您需要修改方法的签名,如下所示

    public void testMethod2( LocationDetailModel locationModelDet ){
         // now you acess the locationModelDet
    }
    
  2. 您可以将locationDet作为参数传递给testMethod2作为testMethod(locationDet)

    1. 另一个替代选项是,您可以创建一个实例变量

      ,而不是使用局部变量
       private LocationDetailModel locationDet = new LocationDetailModel();
      
    2. 现在在testMethod1()中,您无需创建局部变量,只需设置title即可。为此,您无需修改​​testMethid2()的签名。您将能够在该方法中访问locationDet