Ich entdeckte, dass Klassen mit Standard-Equals-Methode verschiedene Instanzen von Meta-Objekt-Methode hat. Wieso ist es so? Auf den ersten Blick sieht es nicht optimal aus, da Methodenobjekte unveränderlich sind.Warum mehrere Instanzen von Method-Objekt für die vererbten Methoden sind
class X {}
Method defaultM = Object.class.getMethod("equals", Object.class)
Method xMethod = X.class.getMethod("equals", Object.class)
xMethod != defaultM
xMethod.equals(defaultM)
Ich glaube nicht, dass es einen theoretischen Grund gibt, es ist wahrscheinlich einfach keine Optimierung, die in der Praxis für ihren Preis viel Verbesserung bringen würde. – biziclop
Versuchen Sie, beide in eine Zeichenfolge zu konvertieren. Wenn sie zu verschiedenen Klassen gehören, sollte ihre Zeichenfolgendarstellung unterschiedlich sein. –
Was bedeutet, dass unveränderliche Methodenobjekte nicht optimal sind? – EJP