Generische Klassen.

Status
Nicht offen für weitere Antworten.

Hexe

Mitglied
Hallo;
wie implementier ich denn nen Konstruktor zu ner generishen Klasse.

meinetwegen
private class generisch<E>{

}

????????????????? der soll eine menge für Objekte
vom generischen Typ E mit Kapazität n erstellen...
 
B

Beni

Gast
z.B. so:
Code:
public class Menge<E>{
  private List<E> interneListe;

  public Menge(){
    interneListe = new ArrayList<E>();
  }

  public Menge( int capazity ){
    interneListe = new ArrayList<E>( capazity );
  }

  public Menge( E eintrag ){
    this();
    interneListe.add( eintrag );
  }
}
 
S

stev.glasow

Gast
meinst du so was:
Code:
private class Generisch<E>{

	private final Object[] bla;

	public Generisch(int k){
		bla = new Object[k];
	}
}

private class Generisch2<E extends Number>{

	private final Number[] bla;

	public Generisch2(int k){
		bla = new Number[k];
	}
}
 

KISS

Bekanntes Mitglied
au, au, au, au auweia. och noe, nicht wirklich oder?
bevor es wieder wegeditiert wird, das post bezieht sich auf
stevg hat gesagt.:
meinst du so was:
Code:
private class Generisch<E>{

	private final Object[] bla;

	public Generisch(int k){
		bla = new Object[k];
	}
}

private class Generisch2<E extends Number>{

	private final Number[] bla;

	public Generisch2(int k){
		bla = new Number[k];
	}
}
 

KISS

Bekanntes Mitglied
vieleicht muede
Code:
public class <T> Generic()
{
    final T[] f_values;

    public Generic(int size)
    {
        f_values=new T[size];
    }

    public Generic(T ... values)
    {
        f_values=values;
    }

    public void add(T value,int index)
    {
        f_values[index]=value;
    }

    public T get(int index)
    {
        return f_values[index];
    }
}

final Generic<String> g=new Generic<String>(10);
g.add("hallo",1);
g.add(3); //fehler
System.out.println(g.get(1).trim());
 
B

Beni

Gast
Äh, KISS... den Code den du da postest wird nichtmal kompilieren...
Zum einen kann man keine generischen Arrays erstellen (new T[k] kannst du vergessen, das gibt ein Compilererror; T...t erstellt ein Object[], und mündet irgendwann in eine ClassCastException), zum anderen lautet die Syntax "class Name <Generics>" und nicht "class <Generics> Name" (zumindest verwenden sämtliche Klassen der API diese Reihenfolge, dann wird das wohl schon einen Sinn haben :wink: )
 

KISS

Bekanntes Mitglied
bin halt auch muede, das ursprungspost lag allerdings mit der verwendung von generics voellig daneben
nochmal richtig
Code:
public class Genric2<T>
{
        final T[] f_values;

        @SuppressWarnings(value={"unchecked"})
        public Genric2(int size)
        {
            f_values=(T[]) Array.newInstance(Object.class,size);
        }

        public Genric2(T ... values)
        {
            f_values=values;
        }

        public void add(T value,int index)
        {
            f_values[index]=value;
        }

        public T get(int index)
        {
            return f_values[index];
        }
    

        public static void main(String[] args)
        {
    
            final Genric2<String> g=new Genric2<String>(10);
            g.add("hallo",1);
            g.add(3); // fehler
            System.out.println(g.get(1).trim());
        }

}
 
B

Beni

Gast
KISS, probier es aus. Wenn das stimmen würde, würde folgendes Programm nicht abstürzen:

Code:
public class Test<T>{
    public static void main( String[] args ) throws Exception{
        Test<String> test = new Test<String>();
        String[] array = test.test( "a", "b" );
        System.out.println( array[0] );
        System.out.println( array[1] );
    }
    
    public T[] test( T t1, T t2 ){
        return blupp( t1, t2 );
    }
    
    public T[] blupp( T...t ){
        return t;
    }
}

Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object;
at Test.main(Test.java:6)
 

KISS

Bekanntes Mitglied
komisch das String[] strings test.blub("1","2","3"); geht, oder?
hast du mal das korigierte beispiel von mir untersucht? geht auch
woran kann das blos liegen?
 
S

stev.glasow

Gast
KISS hat gesagt.:
au, au, au, au auweia. och noe, nicht wirklich oder?
bevor es wieder wegeditiert wird, das post bezieht sich auf
stevg hat gesagt.:
meinst du so was:
Code:
böser Code

Stimmt wenn ich in meinen Post noch Fehler entdecke oder mir die Formulierung nicht gefällt und noch niemand Bezug genommen hat editiere ich diese, das händel ich aber in allen Foren so.
Und mit dem au-au hast dir ja selbst nen Schuss verpasst :bae: :wink: *küssie* :)
 

L-ectron-X

Gesperrter Benutzer
Schalte doch einfach mal einen Gang zurück und überlege vor dem Posting, dann reduzieren sich auch Fehler auf ein Minimum. Es nutzt dem Fragenden wenig, wenn er sich seitenweise durch fehlerhafte Postings lesen muss.
 
B

Beni

Gast
KISS hat gesagt.:
komisch das String[] strings test.blub("1","2","3"); geht, oder?
hast du mal das korigierte beispiel von mir untersucht? geht auch
woran kann das blos liegen?

Hm, so tief bin ich nicht in der Materie, aber ich würde folgendes denken. Wenn man über das "test(...)" geht, wird rein generischer Code ausgeführt. Da Generics im Bytecode nicht vorhanden sind, bleibt nur Object[] als mögliche Umwandlung.
Bei einem direkten Aufruf von "blupp", wird bereits in der Methode main der String-Array hergestellt (so habe ich jedenfalls den Bytecode interpretiert. Du kannst in mit "javap -c Klasse" selbst angucken). In blupp wird dieser String[] aber als Object[] behandelt. Nur ändert das nichts an dem Typ des Objektes, und deshalb ist der anschliessende Cast zurück in ein String[] möglich.

Kompilat von "Test", so wie ich es oben gepostet hatte, aber mit direktem Aufruf von "blupp" (und nicht von "test").
Code:
public class Test extends java.lang.Object{
public Test();
  Code:
   0:   aload_0
   1:   invokespecial   #9; //Method java/lang/Object."<init>":()V
   4:   return

public static void main(java.lang.String[])   throws java.lang.Exception;
  Code:
   0:   new     #2; //class Test
   3:   dup
   4:   invokespecial   #21; //Method "<init>":()V
   7:   astore_1
   8:   aload_1
   9:   iconst_2
   10:  anewarray       #23; //class java/lang/String
   13:  dup
   14:  iconst_0
   15:  ldc     #25; //String a
   17:  aastore
   18:  dup
   19:  iconst_1
   20:  ldc     #27; //String b
   22:  aastore
   23:  invokevirtual   #31; //Method blupp:([Ljava/lang/Object;)[Ljava/lang/Object;
   26:  checkcast       #33; //class "[Ljava/lang/String;"
   29:  astore_2
   30:  getstatic       #39; //Field java/lang/System.out:Ljava/io/PrintStream;
   33:  aload_2
   34:  iconst_0
   35:  aaload
   36:  invokevirtual   #45; //Method java/io/PrintStream.println:(Ljava/lang/String;)V
   39:  getstatic       #39; //Field java/lang/System.out:Ljava/io/PrintStream;
   42:  aload_2
   43:  iconst_1
   44:  aaload
   45:  invokevirtual   #45; //Method java/io/PrintStream.println:(Ljava/lang/String;)V
   48:  return

public java.lang.Object[] test(java.lang.Object, java.lang.Object);
  Code:
   0:   aload_0
   1:   iconst_2
   2:   anewarray       #4; //class java/lang/Object
   5:   dup
   6:   iconst_0
   7:   aload_1
   8:   aastore
   9:   dup
   10:  iconst_1
   11:  aload_2
   12:  aastore
   13:  invokevirtual   #31; //Method blupp:([Ljava/lang/Object;)[Ljava/lang/Object;
   16:  areturn

public java.lang.Object[] blupp(java.lang.Object[]);
  Code:
   0:   aload_1
   1:   areturn

}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Generische Klassen/Interface Java Basics - Anfänger-Themen 1
H linkedlist generische klassen Java Basics - Anfänger-Themen 169
M Generische Klassen "FlaschenRegal" Java Basics - Anfänger-Themen 13
S Erste Schritte Generische Klassen sind toll ....aber warum sollte ich das je benutzen? Java Basics - Anfänger-Themen 3
M Klassen Generische Klassen, Personen und Gruppen Java Basics - Anfänger-Themen 6
W Generische Klassen Java Basics - Anfänger-Themen 3
W Generische Klassen und Casting Java Basics - Anfänger-Themen 6
C Generische Klassen, das erste Mal. Java Basics - Anfänger-Themen 8
J generische klassen neue Instanz Java Basics - Anfänger-Themen 5
I Generische Funktion Java Basics - Anfänger-Themen 3
B Generische Typen für dynamisches Formular Java Basics - Anfänger-Themen 3
H Generische Konstruktor Java Basics - Anfänger-Themen 12
Kirby.exe Generische Objekt Instanz erstellen Java Basics - Anfänger-Themen 14
D Generische Klasse Java Basics - Anfänger-Themen 6
M Datentypen Generische Datentypen - Syntax Java Basics - Anfänger-Themen 25
O Generische Typen Java Basics - Anfänger-Themen 9
Queiser Datentypen 2 generische Datentypen für eine Schnittstelle Java Basics - Anfänger-Themen 1
M Generische Liste aus Comparable-Objekten Java Basics - Anfänger-Themen 6
J Sortierte generische Liste Java Basics - Anfänger-Themen 1
D statische generische Methoden Java Basics - Anfänger-Themen 3
S Wie muss ich die Generische Methode schreiben? Java Basics - Anfänger-Themen 6
M Methoden Generische Klasse - ändern einzelner Attributwerte Java Basics - Anfänger-Themen 2
S generische methode mit verschiedenen datentypen Java Basics - Anfänger-Themen 3
N Generische Schnittstellen Java Basics - Anfänger-Themen 2
B generische LinkedList nach Häufigkeit der Elemente füllen Java Basics - Anfänger-Themen 6
D Generische Typen Java Basics - Anfänger-Themen 20
L Generische Liste Java Basics - Anfänger-Themen 4
B Generische Queue programmieren Java Basics - Anfänger-Themen 5
S Generische Methode soll Objekte als Parameter erlauben die bestimmtes Interface implementieren^ Java Basics - Anfänger-Themen 9
A Probleme mit MergeSort Generische Liste Java Basics - Anfänger-Themen 0
A Generische Methode Java Basics - Anfänger-Themen 4
H Collections List in List<SpecificType> als stat. generische Methode zurückgeben Java Basics - Anfänger-Themen 4
J Probleme mit static generische Klasse Java Basics - Anfänger-Themen 6
M Generische Liste Java Basics - Anfänger-Themen 4
B Generische Methode Java Basics - Anfänger-Themen 2
B Generische Klasse Java Basics - Anfänger-Themen 7
B Generische Methoden Java Basics - Anfänger-Themen 8
F Collections Generische Klasse/Methoden Java Basics - Anfänger-Themen 19
L Generische Warteschlange Java Basics - Anfänger-Themen 8
A Generische Datentypen Java Basics - Anfänger-Themen 8
bluerob generische ArrayList -> erbende Objekte auslesen Java Basics - Anfänger-Themen 24
L Generische Containerklasse Java Basics - Anfänger-Themen 9
V Methoden Umwandlung in generische Methode Java Basics - Anfänger-Themen 8
A Generische Collections und Vererbung Java Basics - Anfänger-Themen 2
S Generische HashMap Java Basics - Anfänger-Themen 2
L Generische ArrayList, CastProblem Java Basics - Anfänger-Themen 2
W generische Module Java Basics - Anfänger-Themen 2
S Generics und "generische Feldzuweisungen" Java Basics - Anfänger-Themen 5
C unterschied generische typen und supertypen als methodenparameter Java Basics - Anfänger-Themen 3
D Datentypen Generische Collections und Warnings Java Basics - Anfänger-Themen 8
F Generische Methoden Problem Java Basics - Anfänger-Themen 5
E Generische Arrays durch Typecast mit Object-Array Java Basics - Anfänger-Themen 11
K Generische Klasse mit innerer Klasse | Problem mit Array Java Basics - Anfänger-Themen 6
B Was passiert, wenn eine konkrete Klasse von generische Klasse erbt? Java Basics - Anfänger-Themen 14
B Generische Vererbung was ist der Unterschied? Java Basics - Anfänger-Themen 4
F Generische Typen auch für statische Methoden? Java Basics - Anfänger-Themen 13
J array über generische arraylist Java Basics - Anfänger-Themen 7
B instanceof Prüfung für generische Typen Java Basics - Anfänger-Themen 5
N 2 dimensionale generische Arrays Java Basics - Anfänger-Themen 9
H Statische generische Methode Java Basics - Anfänger-Themen 2
G Frage zum Ungang mit Generische Datentypen Java Basics - Anfänger-Themen 4
0x7F800000 generische arrays mal wieder )-; Java Basics - Anfänger-Themen 6
D generische methode <T> void . Java Basics - Anfänger-Themen 9
J Generische Methoden Java Basics - Anfänger-Themen 6
G Doppelt verkettete, generische Liste Java Basics - Anfänger-Themen 11
S Parameterübergabe: Generische Klasse Java Basics - Anfänger-Themen 4
S generische Felder Java Basics - Anfänger-Themen 2
P Generische Klasse Java Basics - Anfänger-Themen 8
F Generische Methode - was bringt der Wildcard Operator? Java Basics - Anfänger-Themen 7
F Generische Liste von generischen Objekten. Java Basics - Anfänger-Themen 3
H generische Methoden Java Basics - Anfänger-Themen 5
N generische HashMap und Iterator Java Basics - Anfänger-Themen 2
H generische Bausteine, heterogene Datenstrukturen Java Basics - Anfänger-Themen 2
J Methodenaufrufe abstrakte Klassen, Interfaces Java Basics - Anfänger-Themen 17
M Abstrakte Klassen - Notation Java Basics - Anfänger-Themen 9
Detlef Bosau Nachladen von Klassen zur Laufzeit Java Basics - Anfänger-Themen 24
M Anonyme Klassen - Warum wird in der Konsole nichts ausgegeben? Java Basics - Anfänger-Themen 1
MoxMorris Einige Methoden aus verschiedenen Klassen nacheinander auszuführen läuft seltsam Java Basics - Anfänger-Themen 2
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
I 2 verschiedene Klassen mit gleichen Property vergleichen Java Basics - Anfänger-Themen 13
C Array von Klassen Java Basics - Anfänger-Themen 2
monsterherz 2 Klassen daher Probs mit dem Dateinamen Java Basics - Anfänger-Themen 9
C Kommunikation zwischen 2 Klassen Java Basics - Anfänger-Themen 9
I JPA Query für mehrere Klassen Java Basics - Anfänger-Themen 3
I @Entity Klassen, Service Beans etc. aus einem Share Projekt beziehen? Java Basics - Anfänger-Themen 26
S IntelliJ geht alle Klassen durch Java Basics - Anfänger-Themen 9
I Gleiche Klassen und Methoden in unterschiedlichen Projekten nutzen Java Basics - Anfänger-Themen 2
T variablen klassen übergreifend Java Basics - Anfänger-Themen 12
N Klassen Methoden anderer Klassen aufrufen Java Basics - Anfänger-Themen 4
D Klassen Klassen Kommunikation Java Basics - Anfänger-Themen 12
Encera Auf Objekte aus anderer Klassen zugreifen Java Basics - Anfänger-Themen 20
berserkerdq2 Zwei Klassen Erben von der Klasse A, die eine Klasse kann ich an Methoden übergeben, die als Parameter A haben, die andere nicht? Java Basics - Anfänger-Themen 3
M Andere Methoden in anderen Klassen aufrufen Java Basics - Anfänger-Themen 11
L Methoden in anderen Klassen nutzen Java Basics - Anfänger-Themen 6
D Klassen und Vererbung Java Basics - Anfänger-Themen 2
L Best Practice Annotierte Klassen im Classpath herausfinden Java Basics - Anfänger-Themen 1
P Mit dem Scanner Klassen aufrufen Java Basics - Anfänger-Themen 3
O Klassen Zusammenspiel zwischen 2 Klassen Java Basics - Anfänger-Themen 1
K Zweite Ausgabe von vererbten Klassen Java Basics - Anfänger-Themen 3
M Wie können Klassen nicht-materialisierte Attribute haben, die nur über get/ set-Mehoden simuliert sind? Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben