ちょっと変わった問題に遭遇しました:
javax.websocket.Session session = //...
// this works
newSession.addMessageHandler(new MessageHandler.Whole<String>() {
@Override
public void onMessage(String message) {
MyWebSocket.this.onMessage(message);
}
});
// these don't work
newSession.addMessageHandler((MessageHandler.Whole<String>) MyWebSocket.this::onMessage);
newSession.addMessageHandler((MessageHandler.Whole<String>) message -> MyWebSocket.this.onMessage(message));
void onMessage(String message) {
System.out.println(message);
}
このインスタンスでラムダ式が機能しない理由を知っている人はいますか? コンパイルエラーも例外も何もありません。メソッド「onMessage」が呼び出されていません。
私は Java 1.8.0_65 と Tyrus 参照実装 1.9 を使用しています。