2016-01-19 25 views
5

Come posso impostare un breakpoint su una linea singola lambda?Punto di rottura dell'eclisse in lambda a linea singola/singola?

ad es. Mi piacerebbe la (Eclipse) debugger per fermare, quando outer.doSth(event) si chiama:

observable.addCallback(event-> outer.doSth(event)); 
+0

Purtroppo non c'è modo di farlo senza formattare – Sossenbinder

+2

Un'alternativa è mettere il punto di interruzione all'interno del metodo 'doSth'. –

+2

Bene, puoi semplicemente impostare un breakpoint sulla riga contenente l'espressione lambda, ma devi convivere con il fatto che l'esecuzione si fermerà in entrambi i punti, prima di richiamare 'addCallback' e prima di richiamare' doSth'. Questo non è diverso da qualsiasi altro nidificazione di espressioni. Se vuoi differenziare, inserisci interruzioni di riga ... – Holger

risposta

4

Non è possibile.

Se si refactoring in questo modo:

observable.addCallback(event-> { 
    return outer.doSth(event); 
}); 

è possibile.

+3

Non è necessario trasformare l'espressione lambda nella sintassi dettagliata. Funzionerà anche usando 'event-> outer.doSth (event)' se si inserisce un'interruzione di riga dopo '->'. – Holger

0

Ebbene questa risposta non è per Eclipse, ma in intellij è possibile (15.x)

enter image description here

Hai anche l'opzione per impostare un punto di interruzione sia sulla linea (che è la prima opzione nell'immagine), o al primo lambda o al secondo. E così via.