Ich habe eine Klassendatei myClass.m
in einem Paketordner +myPack
, der sich auf dem Pfad befindet. Ein einfaches Beispiel für die Klassendatei ist:
Wenn ich jetzt direkt die Methode aufrufen und auf die Eigenschaft mit dem vollen Paketnamen zugreifen, d. h .:
%Vor% gibt x = 2
korrekt zurück. Nun, wenn ich das gleiche versuche, indem ich diese Klasse importiere (und nicht den Paketnamen verwende):
es gibt mir den folgenden Fehler:
Statische Methoden- oder Konstruktoraufrufe können nicht indiziert werden. Folgen Sie nicht dem Aufruf der statischen Methode oder des Konstruktors mit jede zusätzliche Indizierung oder Punktreferenzen.
Warum funktioniert das im ersten Fall und nicht im zweiten? Soweit ich verstanden habe, erlaubt es import
in einer Klasse hauptsächlich, den Klassennamen ohne den langen Paketnamen zu verwenden (neben anderen Überlegungen). Was ist der Unterschied in diesen beiden, der diesen Fehler verursacht und wie kann ich umgehen?
Hier ist etwas komischer für Sie: Das Verhalten ist anders, wenn Sie im Befehlsfenster, von einem Skript oder von einer Funktion laufen!
Das haben Sie bereits gezeigt
%Vor%und
%Vor%(die zweite Zeile würde auch den gleichen Fehler auslösen)
und
%Vor%Ich würde das definitiv einen Fehler nennen :) Das erwartete Verhalten ist, in allen Fällen einen Fehler zu geben.