Es ist schlechter Stil, und potenziell riskante $
in jedem Identifikator in Java zu verwenden. Der Grund, warum es riskant ist, ist, dass das Zeichen $
für die Verwendung der Java-Toolchain und Fremdsprachenwerkzeuge reserviert ist.
Es wird von Java-Compilern in "internen" Klassennamen für innere und verschachtelte Klassen verwendet.
Es wird von Java-Compilern in den Namen von synthetischen Attributen verwendet.
Es könnte von Drittanbieter-Code-Generatoren (z.Annotationsprozessoren) für verschiedene Zwecke.
Es könnte von anderen Sprachen verwendet werden, die auf die JVM-Plattform abzielen und die möglicherweise mit Ihrem Code koexistieren müssen.
Sie werden wahrscheinlich keine technischen Probleme mit einem Klassennamen $
haben (zumindest in Bezug auf die Standard-Java-Toolchain). Aber es gibt immer die Möglichkeit, dass dies in Zukunft ändern wird:
- Sie haben das Recht vorbehalten dies zu ändern.
- Es gibt einen Präzedenzfall dafür im
_
Beispiel.
Wenn Sie wirklich, wirklich ein Zeichen Klassennamen benötigen, wäre es besser, es sicher zu spielen und nutzen F
oder Z
oder etwas anderes, das nicht reserviert ist.
Aber um ehrlich zu sein, denke ich, dass es besser wäre, eine echte funktionale Sprache zu implementieren (oder einfach zu verwenden), als ein funktionierendes Programmier- "System" in Java zu schuhen. Oder vielleicht, wechseln Sie einfach zu Java 8 vor seiner offiziellen Veröffentlichung. Denn ich würde verweigern, um eine Java-Codebase zu lesen/zu pflegen, die wie jQuery aussah.
meine ich nicht eine funktionelle lib für Java zu erstellen, wollen nur ein lib erstellen einige gemeinsame Dienstprogramme zu halten I verwendet. Wiederum bin ich ein Verfechter des Minimalismus und fühle mich mit Dingen wie Apache Commons angewidert. Das funktionale Zeug wird hinzugefügt, um mir zu helfen, Sammlung (en) leichter zu manipulieren.
Wenn es Ihr Code ist, können Sie tun, was Sie wollen. Treffen Sie Ihre eigenen Entscheidungen. Handeln Sie auf Ihre Meinung. Sei ein "Risk Taker" ... :-). (Unser Rat an $
, usw. ... ist strittig.)
Aber wenn Sie diesen Code für einen Kunden oder einen Arbeitgeber schreiben, oder mit der Absicht, ein (lebensfähiges) Open-Source-Produkt zu erstellen, dann müssen Sie nehmen Berücksichtigung der Meinung anderer Leute. Zum Beispiel braucht Ihr Chef eine fundierte Meinung darüber, wie wartbar Ihr Code sein wird, wenn Sie irgendwo anderswo einen besser bezahlten Job finden. Ist der nächste Typ in der Lage, es herauszufinden, deinen Code zu behalten, frisch usw.? Oder wird er in den Mülleimer geschickt?
Es ist generell eine schlechte Idee, seltsame Namen für Klassen, Methoden und Variablen zu verwenden. In Java weniger als andere Sprachen (C/C++), aber es ist immer noch keine gute Idee, denke ich. Der Name einer Klasse sollte kurz ihren Zweck beschreiben. –
Wie auch immer, ich denke, es ist in Ordnung, wenn Sie wissen, was Sie tun. Der Dollar hat keine besondere Bedeutung. Es wird verwendet, um eindeutige Namen für verschachtelte Klassen zu generieren. Da keine zwei Klassen in demselben Paket mit demselben Namen existieren können, garantiert die Verwendung des Namens der enthaltenden Klasse als Präfix, dass es keine Überlappungen zwischen Klassen gibt, die in verschiedenen Klassen der ersten Ebene verschachtelt sind. –
@Pshemo, ernsthaft Ich denke, ich sollte mehr Kontext aussetzen, um Kommentare wie die, die Sie gepostet haben, zu vermeiden. Die Sache, die ich tun möchte, ist die Tatsache zu überwinden, dass Java keine reine Funktion unterstützt, und das '_' oder' $ 'setzt einen Namespace, um ein sehr allgemeines Konzept (Klassen/statische Methoden) einzukapseln. und ich habe weder einen guten Namen dafür, noch möchte ich, dass der Lib-Benutzertyp zu viele Dinge enthält, um auf diesen Namespace zu verweisen. Schauen Sie sich https://github.com/greenlaw110/java-tool/blob/master/src/main/java/org/osgl/_.java an. –