Wie versende ich Multimethode auf primitiven Typen?

8

Ich möchte, dass sich mein Programm zwischen primitiven Typen und ihren Wrapper-Klassen anders verhält, zum Beispiel:

%Vor%

Aber es funktioniert nicht, obwohl ich Integer und int beide versuche

%Vor%

Also, ist es möglich, Multimethode auf primitive Typen zu versenden?

====== EDIT ======

Ich habe eine Google Guava in clojure eingepackt. Es gibt eine primitive Bibliothek darin, wie Booleans, Dobules, Ints usw. Sie haben einige Methoden gemeinsam, also möchte ich multimethod versuchen.

    
qiuxiafei 28.07.2012, 16:47
quelle

1 Antwort

4

Nein, das ist derzeit nicht möglich. Ein arg zu einer Funktion (wie der Multimethod-Dispatch-Funktion) ist entweder ein Objekt (also werden Grundelemente eingerahmt) oder ein Grundelement lang / doppelt (somit werden Objekte entpackt). Ihr Szenario erfordert eine Funktion, die beides übernehmen und diese Unterscheidung innerhalb der Funktion beibehalten kann.

Das heißt, es gibt möglicherweise Lösungen für das Problem, das Sie lösen möchten.

    
Alex Taggart 28.07.2012 18:38
quelle