在将Android Studio
更新为3.1.0
并将kotlin
版本更新为1.2.31
后,我遇到了Observables
的问题。
someVm值为null。
class ViewModel1(car: Car) : BaseObservable() {
val someVm = ObservableField<ViewModel2>(ViewModel2(car))
shipmentVm.get()!!
}
class ViewModel2(car: Car) : ItemViewModel() {
val car= ObservableField(car)
}
open class ItemViewModel : BaseObservable() {
val first = ObservableField(false)
val last = ObservableField(false)
}
非常感谢!
答案 0 :(得分:0)
我通过继承ObservableField来解决这个问题。 FWIW,它不是有效的liskov,因为它增强了前提条件,但现在工作正常。
如果您从java中使用它,Null仍然可以进入这个类(并导致NPE)。
private ProcessBuilder processBuilder;
private NtpServerUtil ntpServerUtil;
@Before
public void init(){
processBuilder = Mockito.mock(ProcessBuilder.class);
ntpServerUtil = Mockito.spy(NtpServerUtil.class);
MockitoAnnotations.initMocks(this);
PowerMockito.whenNew(ProcessBuilder.class).withArguments(Mockito.anyString()).thenReturn(processBuilder);
}
@Test
public void testEnableNtp() throws Exception {
...
NtpServerUtil.enable();
...
}