Ich habe den folgenden Code:Java - Lambda kann nicht für Eigenbau-Schnittstelle verwenden - Zieltyp Lambda-Umwandlung muss eine Schnittstelle seine
public interface Logic
{
boolean logicAccesscible();
}
public class LocationLogic implements Logic
{
@Override
public boolean logicAccesscible()
{
return true;
}
}
Aber wenn ich versuche, ein Lambda zu verwenden, um ein Objekt zu erstellen LocationLogic Es wird einfach nicht funktionieren.
l.setLocationLogic(new LocationLogic()
{
@Override
public boolean logicAccesscible()
{
return false;
}
});
, die Werke snipet, aber
l.setLocationLogic(() ->
{
return false;
});
gibt mir den Fehler "Zieltyp Lambda-Umwandlung muss eine Schnittstelle sein"
Und ja, ich habe zu verwenden versucht:
l.setLocationLogic((LocationLogic)() -> {return false;});
Es ist nur ein einfaches:
diese Weise können Sie es gerne nutzen könnten Setter. public void setLocationLogic (StandortLogikstandortLogik) { this.locationLogic = locationLogic; } – Kishirada
Die Nachricht ist ziemlich klar. Ein Lambda ist eine Instanz einer funktionalen ** Schnittstelle **. LocationLogic ist eine ** Klasse **. Veranlassen Sie, dass Ihr Setter ein Logic-Argument und kein LocationLogic verwendet. –
Also was muss ich ändern ...? – Kishirada