Auf normalen Objekten kann ich folgendes tun:Warum kann apply() nicht in Kurzform für Paketobjekte verwendet werden?
object A {
def apply = "!"
}
A() // "!"
Aber auf Paketobjekte, das nicht funktioniert:
package object A {
def apply = "?"
}
A.apply // "?"
A() // compile error
// error: package A is not a value
Gibt es eine grundlegende Einschränkung? Oder ist es nur eine Implementationsbeschränkung, die ich beheben kann, indem ich den Compiler etwas tweeze?
Was wollten Sie damit machen? Warum nicht einfach normale Objekte benutzen? –
@SergeyPassichenko - zum Beispiel, um eine Methode ohne Importe in der Codebasis aufzurufen - wenn Sie das Paketobjekt "Affe" mit der Methode "Anwenden" haben, dann könnten Sie "affe()" an jedem beliebigen Ort ausführen. Das ist ein Beispiel - aber ich bin auch daran interessiert, warum Paketobjekte sich so von normalen Objekten unterscheiden. – Rogach