Java 安卓;“吸气剂”;是否返回了错误的值
我有一个扩展了类A的类B,我试图从类A访问一个变量,但它没有返回正确的值 (1) 类顶部的变量声明:Java 安卓;“吸气剂”;是否返回了错误的值,java,android,Java,Android,我有一个扩展了类A的类B,我试图从类A访问一个变量,但它没有返回正确的值 (1) 类顶部的变量声明: private int tripCount; (2) 我有一个a级onCreate中的ViewModel observer,它正在查找房间数据库中的更改,并相应地设置tripCount变量: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanc
private int tripCount;
(2) 我有一个a级onCreate中的ViewModel observer,它正在查找房间数据库中的更改,并相应地设置tripCount变量:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// we are going to overwrite this
// setContentView(R.layout.activity_base);
baseViewModel = ViewModelProviders.of(this).get(TripViewModel.class);
baseViewModel.getAllTrips().observe(this, new Observer<List<TripEntity>>() {
@Override
public void onChanged(@Nullable final List<TripEntity> trips) {
tripCount = trips.size();
Log.v("BaseActivity","tripCount: " + tripCount);
}
});
}
(4) B类正在扩展A类,并试图通过以下方式访问tripCount变量/值:
tripCount2 = super.getTripCount();
Log.v("TripActivity","tripCount: " + tripCount2);
日志显示B类的tripCount2为0,A类的tripCount大于0。我在这里的实现有什么问题吗?我找到了问题的答案
我没有使用getter和setter方法,而是将tripCount变量设置为“protected”,这样我就可以从子类访问它。A类的tripCount大于0,如果您不发布所有相关代码,您如何获得帮助?我缺少什么?我想我已经发布了所有相关的代码@Forpas实例化类B的代码在哪里?类A中的tripCount是如何获得其值的?即使类
B
扩展类A
两者的实例仍然是完全独立的对象,在B
实例中调用super.getTripCount()
不会从A
实例返回值。
tripCount2 = super.getTripCount();
Log.v("TripActivity","tripCount: " + tripCount2);