C'è un motivo per cui è possibile creare metodo riferimenti su un riferimento null
in Java? Fare questo è probabilmente mai corretto, ma può causare errori che sono difficili da trovare in seguito:Creazione di un riferimento metodo su un null di riferimento non un'eccezione
public class Test {
void m() {
}
public static void main(String[] args) {
Test test = null;
Runnable fn = test::m; // no exception
System.out.println(fn); // prints Test$$Lambda$1/[email protected]
fn.run(); // throws a null pointer exception
}
}
Stai mettendo alla prova con Eclipse? Ho provato con JDK 1.8.0_51 e lancia l'NPE dove previsto. Questo risponde probabilmente la domanda allora http://stackoverflow.com/questions/37413106/thread-setuncaughtexceptionhandler-and-java-8-method-reference/. Perché dovrebbe lanciare un NPE a 'Runnable fn = test :: m'. – Tunaki
Sto votando per chiudere questa domanda come off-topic perché sta chiedendo un comportamento che non esiste. –
@Tunaki sì testato in Eclipse e non un'eccezione quando ho Decommentare l'ultima linea – Michael