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