如何访问私有变量

时间:2012-04-17 11:09:52

标签: android

有没有办法访问其他类的私有变量。实际上我正在为我的库项目编写testCases,以便在应用程序崩溃时测试所有可能的关键条件.I shuld以这样的方式编写我的项目应该通过所有的测试用例。现在我的问题应该检查我的库项目中声明为私有的变量。有没有办法访问这些变量(声明为私有)。

3 个答案:

答案 0 :(得分:3)

使用getters and setters ..是首选的方式..在setter中确保你保持安全值,并确保它们不会在任何情况下破坏你的代码..

答案 1 :(得分:0)

在Android上,你想让你的活动的方法变得私有,以防止其他类认为他们可以访问它(片段可以,但这对我来说是错误的练习,最好使用可观察的观察者模式)。然后,您将得到仅需要通过测试访问的私有字段和方法。

BoundBox正是这样做的!以下是访问活动的2个私有字段以进行测试的测试示例:

@UiThreadTest
public void testCompute() {
    // given
    boundBoxOfMainActivity = new BoundBoxOfMainActivity(getActivity());

    // when
    boundBoxOfMainActivity.boundBox_getButtonMain().performClick();

    // then
    assertEquals("42", boundBoxOfMainActivity.boundBox_getTextViewMain().getText());
}

答案 2 :(得分:0)

在java中,我们可以使用公共修饰符访问私有修饰符。 公共修饰符可以是getter / setter或方法。

例如,有用户类有id和show()私有类型。我们可以在公共方法display()的帮助下访问类用户以外的私有修饰符。

class user{
     private int id;
     private void show(){
      sysout.out.println("show called");
}

public void display(){

   System.Out.Println(" id ="+ id);
    show();

}

} 

public class Test{

Public Static Main(){

  User user = new User();

  //user.id;  //CE
  //user.show(); //CE

   user.display();
   }
}

您还可以参考此文章以获取更多详细信息: how to access private data outside class