NameCreator::createName
подразумевает, что либо метод является статическим (вид №1 в таблице ниже), либо цель целевого интерфейса также принимает экземпляр класса (вид # 3, например BiFunction
). Ваши методы не являются статическими, и поэтому, предположительно, ваша цель не принимает экземпляр, поэтому вы получаете ошибку «Can not solve method». Вероятно, вы захотите использовать ссылку метода на экземпляре (вид # 2). Изнутри класса вы можете использовать:
Function func = this::createName
Из-за пределов класса, который вы можете использовать:
NameCreator creator = new NameCreator();
Function func = creator::createName;
Что касается использования одно- или двухпараметрической версии , это зависит от того, какой целевой интерфейс используется. Вышеупомянутый будет использовать ваш первый метод, потому что Function
берет строку и возвращает строку. Например, в следующем функциональном интерфейсе будет использоваться ваш второй метод:
NameCreator creator = new NameCreator();
BiFunction func = creator::createName;
См. Function
, BiFunction
и весь пакет java.util.function
Вас также может заинтересовать учебник Java по ссылкам метода , в частности эта часть:
Существует четыре вида ссылок на методы:
Kind | Example
==============================================================================================
Reference to a static method | ContainingClass::staticMethodName
-------------------------------------------------------+--------------------------------------
Reference to an instance method of a particular object | containingObject::instanceMethodName
-------------------------------------------------------+--------------------------------------
Reference to an instance method of an arbitrary object | ContainingType::methodName
of a particular type |
-------------------------------------------------------+--------------------------------------
Reference to a constructor | ClassName::new
==============================================================================================
1.) вам необходимо получить текущую подписку на основе сохраненного идентификатора. Это можно сделать следующим образом:
stripe.subscriptions.retrieve(
"sub_6OZnwv0DZBryPt",
function(err, subscription) {
// asynchronously called
}
);
Объект subscription
будет иметь информацию о текущем количестве (см. Пример ответа и документацию по объекту подписки ). Что приводит к вашему второму вопросу.
Чтобы получить подписку, вам нужно сохранить только идентификатор. Это безопасно, ID не имеет смысла для других, если у них нет также ваших тестовых / живых ключей. Убедитесь, что вы защищаете эти ключи, и не стесняйтесь хранить идентификаторы, такие как subscription_id, customer_id и т. Д.