私はJavaの新機能を持ち、テストプロジェクトで問題が発生しました。
voidメソッドからどのように値を返すことができますか?私は、タイトルを変更した場合、私はこのエラーが表示されます。
はここに「互換性のない戻り値の型を使用しようとするが、」コード文字列が上書きされたクラスを返す
public void show_sensor (Context appcontext, int sensortype){
new ReactiveSensors(appcontext).observeSensor(sensortype)
.subscribeOn(Schedulers.computation())
.filter(ReactiveSensorFilter.filterSensorChanged())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Action1<ReactiveSensorEvent>() {
@Override
public void call(ReactiveSensorEvent reactiveSensorEvent) {
SensorEvent event = reactiveSensorEvent.getSensorEvent();
float x = event.values[0];
float y = event.values[1];
float z = event.values[2];
String message = String.format("x = %f, y = %f, z = %f", x, y, z);
Log.d("gyroscope readings", message);
}
});
}
である私は、「メッセージ」を返すようにしたい私はこれを行うことができます任意の方法はありますか?
また、アプリケーションコンテキストを取得する際に問題が発生するため、渡す必要がありました。クラス内からApplicationContextを取得して、バックグラウンドで実行できるかどうかを確認する必要があります。
(私はブロードキャストを設定したい、受信機クラスで "getApplicationContext()"を使用することはできません)
できません。メソッドをオーバーライドする場合、返される型は同じでなければなりません。 – jhamon
'call(..) 'メソッドは、未知のメソッドで非同期に実行されます。したがって、その未知のメソッドにStringを返すことはあなたをここで助けません。 – Robert