Ich weiß, es gibt ähnliche Fragen, aber die Antworten sind nicht zufriedenstellend.Wie groovy mehrdeutige Methode Überladung anmutig behandeln
Ich bekomme eine Groovy mehrdeutige Methode Überladungsfehler beim Aufruf einer Methode mit Null als Parameter.
z.B .:
class A{
sampleMethod (B bObj){
if(bObj == null) {
handleNullArgumentGracefully()
}
... do some cool stuff ...
}
sampleMethod (C cObj){
... do some other cool stuff ...
}
}
jetzt, wenn ich rufe sampleMethod(null)
groovy nicht weiß, welche Methode sollte es aufrufen. Das ist klar aber gibt es eine Möglichkeit, eine Methode dieser beiden als Standardmethode, um solche Nullaufrufe zu behandeln? Ich möchte dies auf der Seite und nicht auf der Anrufer Seite Rufenen behandeln (ich will nicht etwas auf der Anruferseite werfen)
UPDATE: ich eine Lösung gefunden, wie es könnte Arbeit, aber ich weiß nicht, warum:
class app {
static void main(String[] args) {
def a = new A()
a.sampleMethod(new B())
a.sampleMethod(new C())
a.sampleMethod(null)
}
}
class A {
def sampleMethod(B bObj) {
if (bObj == null) {
println("handle null")
}
println("1")
}
def sampleMethod = { C cObj ->
println("2")
}
}
class B {
}
class C {
}
Sie eine Methode wie ‚sampleMethod ändern können (B bobj = null) ". So wird diese Methode aufgerufen, selbst wenn if bObj null ist –
danke ich werde das versuchen :) – warch
Leider funktioniert das nicht – warch