Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
seit einiger Zeit ist es ja auch in Java möglich, so genannte Varargs, also Integer... myInts, zu deklarieren.
Mit einigen Datentypen funktioniert das auch sehr gut. Nun wollte ich einer Funktion in Android (was ja auch quasi Java ist) mal Objekte übergeben, die nicht gerade Strings oder int's sind. Dann bekomme ich den Compile-Fehler, dass der Konstruktor blabla(ImageView, ImageView) nicht existiert.
Es gibt keinen Stacktrace, da der Fehler - wie bereits oben beschrieben - zur Entwurfszeit auftritt. Der Name der Funktion ist völlig irrelevant. Das KSKB findest du in meinem Posting. Aber noch mal ausführlich:
Java:
// eine Klasse
public MeinKonstruktor(ImageView... imageViews) {
// some impl
}
//... aufrufende Klasse
MeinKonstruktor hallo = new MeinKonstruktor(new ImageView(), new ImageView());
Also prinzipiell ist das Nutzen von Varargs mit beliebigen Typen möglich. Auch in Konstruktoren. Deswegen muss der Fehler in Deinem Code stecken. Dazu zwei Ideen:
- Evtl. einfacher Schreibfehler beim Konstruktornamen (CamelCase etc.)
- ImageView gibt es in unterschiedlichen Packages mit diesem Namen und Du hast genau das Falsche übergeben (etwa wie bei java.util.List und java.awt.List)
Da ist kein Fehler in deinem Beispiel, das funktioniert:
Java:
public class MeinKonstruktor {
public MeinKonstruktor(ImageView... imageViews) {
}
static class ImageView {
}
public static void main(String[] args) {
new MeinKonstruktor(new ImageView(), new ImageView());
}
}
Poste bitte mal ein KSKB wo es NICHT funktioniert.
Also prinzipiell ist das Nutzen von Varargs mit beliebigen Typen möglich. Auch in Konstruktoren. Deswegen muss der Fehler in Deinem Code stecken. Dazu zwei Ideen:
- Evtl. einfacher Schreibfehler beim Konstruktornamen (CamelCase etc.)
- ImageView gibt es in unterschiedlichen Packages mit diesem Namen und Du hast genau das Falsche übergeben (etwa wie bei java.util.List und java.awt.List)
Haettest du dir mal das Compiler Stacktrace durchgelesen, waere dir wohl das komische Paket bei deinem ImageView aufgefallen. Auch wenn es eclipse oder andere rot unterstreichen kann man trotzdem eine vernuenftige Fehlermeldung bekommen.
Haettest du dir mal das Compiler Stacktrace durchgelesen, waere dir wohl das komische Paket bei deinem ImageView aufgefallen. Auch wenn es eclipse oder andere rot unterstreichen kann man trotzdem eine vernuenftige Fehlermeldung bekommen.
Dem stimme ich zwar zu. Ich oute mich aber gleichzeitig als Glashausbewohner Wie oft ich schon auf die List-Geschichte reingefallen bin, kann ich garnicht mehr zählen...