Instanzen eines Interfaces erzeugen

Gina

Mitglied
Instanzen eines Interfaces erzeugen

Hallo!

Ich hänge gerade an einer Übungsaufgabe aus dem Grundkurs Java von Dietmar Abts fest. Meine Lösung weicht im Grunde nur leicht von dem Lösungsvorschlag ab, trotzdem kann ich den Fehler in meinem Programm nicht finden.

So sieht mein Programm aus:
Java:
package serviceSeite164;

public interface Service {
    
    public void work();

}

package serviceSeite164;

public class Service1 implements Service {

    @Override
    public void work() {
        System.out.println("Methode work der Klasse Service1");

    }

}

package serviceSeite164;

public class ServiceFactory {

    public static Service createService(String classname) throws Exception {
        Class c = Class.forName(classname);
        Service s = (Service) c.newInstance(); 
        return s;
    }
}

package serviceSeite164;

public class ServiceTest {

    public static void main(String[] args) {
        try {
            String x = new String("Service1");
            Service s = ServiceFactory.createService(x);
            s.work();
        } catch (Exception e) {
            System.out.println("Fehler");
        }

    }

}

Der Sinn der Aufgabe war, dass man versucht mit der Class-Methode newInstance() eine Instanz zu erzeugen, statt wie sonst üblich mit dem Konstruktor der Klasse Service1.
Bei meinem Programm erhalte ich die Ausgabe „Fehler“, aber ich verstehe noch nicht, an welcher Stelle genau die Exception ausgelöst wird.
Für etwas Unterstützung wäre ich dankbar.

Viele Grüße, Gina
 

njans

Top Contributor
Java:
catch (Exception e) {
            System.out.println("Fehler");
        }

Du solltest schon den Stack-Trace ausgeben, wenn du die exception fängst. Einfach nur "Fehler" auszugeben hilft wenig.
Ich würde vermuten, dass du eine ClassNotFoundException oder Illegal Cast zu sehen bekommst.
 

Amonvargis

Mitglied
Ich habs nicht ausprobiert aber ich hab ne Vermutung ... ändere mal die Zeile 38 in

Code:
String x = new String("serviceSeite164.Service1");

Ich schätze der braucht den kompletten Pfad innerhalb deines Projektes. Bin aber nicht sicher.
 

Gina

Mitglied
Hallo!

Danke, ich habe mit e.printStackTrace() tatsächlich eine ClassNotFound-Exception erhalten. Mit Angeben des Packetnamens habe ich das Programm jetzt zum Laufen bekommen.
Hier noch eine Frage: die Klassen befanden sich alle im gleichen Package. -Wieso läuft es nur, wenn ich den Packetnamen noch einmal voranstelle?

Viele Grüße, Gina

PS: es gibt da einen Danke-Button. -Weiß zufällig jemand, wo ich den finde?
 

Amonvargis

Mitglied
Richtig. Die Klasse "Class" von der die Methode "forName" aufgerufen wird, befindet sich natürlich nicht in deinem package sondern irgendwo in den Tiefen des JDKs. Von daher muss dein package angegeben werden.
 

JavaMeister

Gesperrter Benutzer
Zur Laufzeit gibt es keine Pakete mehr, wie man sie zur Compiletime hat.

Du musst die Klasse daher voll qualifizieren, egal wo sich deine Klasse befindet.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Vermeiden,dass mehrere Instanzen eines Java-Programms laufen Java Basics - Anfänger-Themen 2
J Klassen Instanzen einer Klasse in einer anderen unabhängigen Klasse nutzen Java Basics - Anfänger-Themen 4
G zwei Instanzen einer Klasse Java Basics - Anfänger-Themen 29
C Was machen mit nicht mehr verwendeten Instanzen ? Java Basics - Anfänger-Themen 18
C Instanzen, wann muss ich Instanzen erzeugen & wo?) Java Basics - Anfänger-Themen 23
A Klassen Zugriff auf Instanzen Java Basics - Anfänger-Themen 2
F Mehrere Instanzen der Klasse A EINER Instanz der Klasse B übergeben Java Basics - Anfänger-Themen 3
M Alle Instanzen einer Klasse ansprechen Java Basics - Anfänger-Themen 4
H Erste Schritte JTree: Instanzen einer Klasse speichern oder Namen/Strings... Java Basics - Anfänger-Themen 4
B OOP Summe aus verschiedenen Instanzen einer Klasse berechnen Java Basics - Anfänger-Themen 2
Z Was habe ich davon mit einem Datentyp verschiedene Instanzen zu haben? Java Basics - Anfänger-Themen 6
Q OOP Mehrere Instanzen auf ein Feld Java Basics - Anfänger-Themen 13
S Direkt Instanzen anlegen Java Basics - Anfänger-Themen 1
K Variablen Instanzen gleich aber warum ? Java Basics - Anfänger-Themen 3
D Instanzen durch Methode Java Basics - Anfänger-Themen 14
W Zugriff auf Instanzen von Klassen Java Basics - Anfänger-Themen 8
S aus Text Datei Instanzen erzeugen, so richtig? Java Basics - Anfänger-Themen 4
O Liste aller Instanzen einer Klasse Java Basics - Anfänger-Themen 18
H Klassen Instanzen mit anderen Klassen erzeugen Java Basics - Anfänger-Themen 5
C Referenzen zu Instanzen einer Klasse im Array Java Basics - Anfänger-Themen 8
B Enum: Instanzen Java Basics - Anfänger-Themen 10
M Instanzen vergleichen? Java Basics - Anfänger-Themen 12
H Klassen, Konstruktoren, Instanzen etc Java Basics - Anfänger-Themen 6
W Instanzen, Klassen Java Basics - Anfänger-Themen 2
C Vectorarrays und Instanzen Java Basics - Anfänger-Themen 10
S alle instanzen einer klasse löschen Java Basics - Anfänger-Themen 18
C OOP Instanzen ansprechen Java Basics - Anfänger-Themen 3
P Verständnisfrage zu Instanzen/Objekten Java Basics - Anfänger-Themen 9
B Zugriff auf Variablen in nicht bekannten Instanzen Java Basics - Anfänger-Themen 6
R mit klassen-instanzen arbeiten in packages Java Basics - Anfänger-Themen 10
M Instanzen, Referenzen und Collections Java Basics - Anfänger-Themen 3
A Mehrere Instanzen einer eigenen Klasse in einem Array Java Basics - Anfänger-Themen 5
W mehrere (numerierte) Instanzen erzeugen Java Basics - Anfänger-Themen 3
M Dynamisch Instanzen erstellen. Java Basics - Anfänger-Themen 4
N Instanzen von beliebigen Klassen aus dem Filesystem erzeugen Java Basics - Anfänger-Themen 7
M Problem mit Instanzen von JLabel Java Basics - Anfänger-Themen 4
V mehrere Instanzen gleicher Name möglich? Java Basics - Anfänger-Themen 3
E instanzen von Klassen erzeugen Java Basics - Anfänger-Themen 2
H Instanzen erzeugen und Methoden aufrufen Java Basics - Anfänger-Themen 5
L verschiedene JPanel-Instanzen erstellen Java Basics - Anfänger-Themen 8
K Eindeutige Instanzen von einem Objekt Java Basics - Anfänger-Themen 13
T Wo Daten ablegen für mehrere Servlet-Instanzen? Java Basics - Anfänger-Themen 2
G Instanzen in einem Feld erzeugen Java Basics - Anfänger-Themen 9
J Instanzen dynamisch erzeugen Java Basics - Anfänger-Themen 8
T Instanzen von abstrakten Klassen? Java Basics - Anfänger-Themen 14
D Instanzen einer Klasse Java Basics - Anfänger-Themen 6
G Speicherung von Referenzen auf Instanzen Java Basics - Anfänger-Themen 5
G alle Instanzen einer Klasse serialisieren Java Basics - Anfänger-Themen 4
Silver-Blue mehrere Instanzen einer Klasse, trotz Random immer das Selbe Java Basics - Anfänger-Themen 7
W Instanzen herunterzählen Java Basics - Anfänger-Themen 7
G Instanzen und Referenzen Java Basics - Anfänger-Themen 5
S Instanzen Java Basics - Anfänger-Themen 4
G wenn auch schon oft gefragt (Konstruktor , Instanzen , usw) Java Basics - Anfänger-Themen 6
richis-fragen Ungefähre Restdauer eines Kopiervorgangs ermitteln Java Basics - Anfänger-Themen 3
D Erste Schritte Frage eines absoluten Anfängers Java Basics - Anfänger-Themen 3
R Operatoren Klausurenfrage: Auswertungspräzedenz eines komplizierten Ausdrucks Java Basics - Anfänger-Themen 6
M Länge eines Arrays als Variable speichern möglich? Java Basics - Anfänger-Themen 14
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
P Wie kann ich beispielsweise Speicherstände eines Spiels DAUERHAFT in meinem Programm speichern? Java Basics - Anfänger-Themen 3
laxla123 Eigenschaften eines Algorithmus (determiniert vs.. deterministisch) Java Basics - Anfänger-Themen 2
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Fehler Semikolon fehlt - ich weiss aber nicht wo da noch eines hin sollte... Java Basics - Anfänger-Themen 21
J Farbe des Striches eines TitledBorders ändern Java Basics - Anfänger-Themen 2
pc pc pc pc pc letztes Element eines Arrays n Java Basics - Anfänger-Themen 3
walid Öffnungszeiten eines Geschäftes Java Basics - Anfänger-Themen 3
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
T Probleme beim Import eines Git-Repos Java Basics - Anfänger-Themen 2
U Eigenschaft eines JTextfiels per ActionListener ändern... Java Basics - Anfänger-Themen 2
B Synchronisation eines kleinen Museums Java Basics - Anfänger-Themen 47
krgewb Breite und Höhe eines Bildes in base64 auslesen Java Basics - Anfänger-Themen 3
Sachinbhatt Was ist die Notwendigkeit eines Sammlungsframeworks in Java? Java Basics - Anfänger-Themen 2
N Textdatei aus Resourcen-Ordner eines Projekts/ jar-file lesen Java Basics - Anfänger-Themen 4
B Produkt eines double - streams Java Basics - Anfänger-Themen 3
B Attribute eines Objekts einer Klasse durch statische Methode einer 2. Klasse ändern? Java Basics - Anfänger-Themen 32
S Variablen Letzte Zeile eines Strings entfernen Java Basics - Anfänger-Themen 1
D Inhalt eines Arrays ausgeben Java Basics - Anfänger-Themen 7
A Jedes zweite Element eines Arrays entfernen Java Basics - Anfänger-Themen 30
sserio Java Fx, wie erstellt man einen EventHandler, der durch das Drücken eines Button Texte in eine Table view einfügt Java Basics - Anfänger-Themen 17
J Größe eines Strings in Pixel Java Basics - Anfänger-Themen 18
M Parse-Tree eines statements darstellen Java Basics - Anfänger-Themen 0
H Java verkettete Liste, Wert eines Index zurückgeben Java Basics - Anfänger-Themen 1
bluetrix Programmieren eines Bots für Zahlen-Brettspiel Java Basics - Anfänger-Themen 9
J Hinzufügen eines Objektes in ein Objekt-Array Java Basics - Anfänger-Themen 62
M Wie kann die Implementation einer Methode den Wert eines Attributs vermindern? Java Basics - Anfänger-Themen 3
A Rekursive Implementation eines Codes Java Basics - Anfänger-Themen 4
H String Repräsentation eines Rechtecks mit Instanz-Methode Java Basics - Anfänger-Themen 8
M Konstruktor ohne Übergabe eines Wertes Java Basics - Anfänger-Themen 7
M Wie kann ich in einem Konstruktor die Methode eines anderen Interfaces mit den jeweiligen Parametern aufrufen? Java Basics - Anfänger-Themen 8
M Wie erreiche ich das Vorwärtsgehen eines Roboters? Java Basics - Anfänger-Themen 2
M Wie erreiche ich es das Vorwärtsgehen eines Roboters? Java Basics - Anfänger-Themen 0
R While-Loop der die Einträge eines Arrays in umgekehrter Reihenfolge anzeigt Java Basics - Anfänger-Themen 3
A Optimierung eines Programms: Mergen der Dateien Java Basics - Anfänger-Themen 23
melisax Alle Möglichkeiten eines Wortes angeben Java Basics - Anfänger-Themen 3
A Java, verarbeitung eines xml-files Java Basics - Anfänger-Themen 2
C Fehler beim erstellen eines Objektes Java Basics - Anfänger-Themen 3
B Konkatenieren eines Strings und inkremtierenden Zahl zu einer INT Variablen Java Basics - Anfänger-Themen 7
F Initialisieren eines Web-Mp3 Players in Tabs durch "booleans" erst wenn Tab geöffnet wird ...? Java Basics - Anfänger-Themen 1
P Drei Zahlen eines Würfelspiels auswerten Java Basics - Anfänger-Themen 7
C Brauche Hilfe beim Schreiben eines Programmes :/ Java Basics - Anfänger-Themen 1
C initialisieren eines arrays richtiger Größe und mit geeignetem Datentyp Java Basics - Anfänger-Themen 26

Ähnliche Java Themen

Neue Themen


Oben