In Python können Sie eine:
from a import b as c
Wie würden Sie dies in Java tun, da ich zwei Importe habe, die miteinander kollidieren.
In Python können Sie eine:
from a import b as c
Wie würden Sie dies in Java tun, da ich zwei Importe habe, die miteinander kollidieren.
Solange es keine Probleme mit Nicht-Standard-Konstruktoren gibt, können Sie dies immer tun (während wir alle darauf warten, dass die Java-Sprachenspezifikation aufholt):
public class YaddaYadda
{
private static class ZU extends eu.zrbj.util.ZrbjUtil_3_0 { }
public void foo (String s)
{
if (ZU.isNullOrEmpty(s))
{
// ...
Für die projektweite Verwendung kann die "Import"-Klasse in eine separate Klassendatei aufgenommen werden, so dass der Import an einer einzigen Stelle definiert wird.
Dies ist vor allem im Hinblick auf "Bibliotheksklassen", d. h. Sammlungen von statischen Dienstprogrammen, von großem Nutzen. Zum einen gibt es Ihnen die Möglichkeit, diese Ungetüme - wie im Beispiel gezeigt - ohne größere Unannehmlichkeiten für den Benutzer zu versionieren.
Tatsächlich ist es möglich, eine Abkürzung zu erstellen, so dass Sie kürzere Namen in Ihrem Code verwenden können, indem Sie etwas wie dies tun:
package com.mycompany.installer;
public abstract class ConfigurationReader {
private static class Implementation extends com.mycompany.installer.implementation.ConfigurationReader {}
public abstract String getLoaderVirtualClassPath();
public static QueryServiceConfigurationReader getInstance() {
return new Implementation();
}
}
Auf diese Weise müssen Sie den langen Namen nur einmal angeben, und Sie können so viele speziell benannte Klassen haben, wie Sie wollen.
Eine weitere Sache, die ich an diesem Muster mag, ist, dass man die implementierende Klasse genauso nennen kann wie die abstrakte Basisklasse und sie einfach in einen anderen Namespace stellen kann. Das hat aber nichts mit dem Import/Umbenennungsmuster zu tun.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.