Присвоение метода для экземпляра класса

Есть такой функциональный интерфейс:

public string Handler();

Для того, чтобы присвоить реализации этого интерфейса конктретный метод использую

Handler handler = SomeClass::someMethod;

Это будет работать только в случае, если someMethod является статичным, как мне сделать, чтобы я могу присвоить метод, который не является статичным?


Ответы (1 шт):

Автор решения: Sergey Zh.

Есть такой функциональный интерфейс:

public string Handler();

Это не совсем похоже на функциональный интерфейс, но допустим хэндлер это он.

Это будет работать только в случае, если someMethod является статичным, как мне сделать, чтобы я могу присвоить метод, который не является статичным?

Не только со статичным. Но если не статик, то и экземпляр класса SomeClass нужен. И тут нужно чтобы количество аргументов у метода функционального интерфейса Handler было на один больше, чем у someMethod.

Можно почитать про оператор :: Что значит оператор ::?

→ Ссылка