скрыть единицу kotlin в строку Java - PullRequest
0 голосов
/ 09 апреля 2020
  public String BeaconValue() {
    ProximityObserver proximityObserver =
            new ProximityObserverBuilder(mContext, ((MyApplication) mContext).cloudCredentials)
                    .onError(new Function1<Throwable, Unit>() {
                        @Override
                        public Unit invoke(Throwable throwable) {
                            Log.e("desks", "proximity observer error: " + throwable);
                            return null;
                        }
                    })
                    .withBalancedPowerMode()
                    .build();
    ProximityZone zone = new ProximityZoneBuilder()
            .forTag("desks")
            .inNearRange()
            .onEnter(new Function1<ProximityZoneContext, Unit>() {
                @Override
                public Unit invoke(ProximityZoneContext proximityZoneContext) {
                    NotificationsManager.this.beaconValue = proximityZoneContext.getAttachments().get("desk-owner");
                    return null;;
                }
            })
            .build();
    proximityObserver.startObserving(zone);

    return this.beaconValue;
}

// Getting the beacon attachment value string
public String getBeaconValue() {
    beaconValue = BeaconValue(beaconValue);
    return beaconValue;
}

так что это код здесь, в настоящее время у меня есть Unit, но после некоторого исследования я обнаружил, что Unit неявный, поэтому ему не нужно ничего возвращать, и он действительно ничего не возвращает. Однако я хочу вернуть beaconValue в этой функции, поэтому я создал эту новую функцию для получения неявного модуля из функции beaconvalue, он не работает. Интересно, почему. (Я пытался изменить Единицу на Строку, но это не тот способ, которым она выдает ошибку. Так как при вводе не поддерживается Строка (Java)) Спасибо.

обновлено.

1 Ответ

0 голосов
/ 09 апреля 2020

Метод возвращает Unit, поскольку вы объявили его как тип возвращаемого значения для объекта Function1. Измените типы в объявлении Function1 на <ProximityZoneBuilder, String>, если функция onEnter допускает любой тип. Если это конкретно требует Unit, то вы должны использовать Unit.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...