Integer zu int konvertieren - JUnit

Status
Nicht offen für weitere Antworten.

strad

Mitglied
Hallo
Ich habe ein Problem mit einem JUnit Test Case. Die Suchfunktion hat keine nützlichen Ergebnisse geliefert...

JUnit 4.4 / JDK1.6.0_01

Meine Klasse, die ich gern testen würde, sieht so aus:

Code:
public class SortedIntArrayList<Integer> extends ArrayList<Integer> {
 
	
	public SortedIntArrayList(){
		
		super();
		
	}
	
    /* adds an integer val such that the list is
       always sorted in ascending order
    */
     public void addInt(Integer val){
         
     // @TODO implementation will follow
	
     }
	
}



und dies ist die Testklasse:

Code:
public class SortedIntArrayListTest extends TestCase {
 
	private SortedIntArrayList<Integer> saExp = new SortedIntArrayList<Integer>();
	private SortedIntArrayList<Integer> saAct = new SortedIntArrayList<Integer>();
 
	@Override
        public void setUp(){
		
		// set up the actual sortedIntArrayList
		saAct.add(-6);
		saAct.add(2);
		saAct.add(9);
		saAct.add(22);
		saAct.add(69);
		
		// set up the expected sortedIntArrayList
		saExp.add(-6);
		saExp.add(2);
		saExp.add(9);
		saExp.add(22);
		saExp.add(69);
		
		
	}
	
 
	// add an element at the beginning of the arraylist
	public void testAddIntFirstElement(){
		
		int val = -10;
		this.saAct.add(0,val);
		this.saExp.addInt(new Integer(val));
		
		assertEquals(saAct,saExp);
	}
}


Nun zu meinem Problem.
Ich versuche eine Methode addInt(Integer) in meiner SortedIntArrayList klasse zu machen, so dass der hinzugefügte Integer an der richtigen Stelle in die (sortierte) arrayList eingefügt wird.
In der addInt(Integer val) methode will ich dann den int Wert des übergebenen Integer rauslesen um ihn anschliessend an der richtigen Stelle einzusortieren.

Was ich versucht habe:

Code:
public void addInt(Integer val){
         
     if(this.get(0).intValue()<val.intValue()){
         // do something
      }
			
}


Funktioniert nicht!
Ebenfalls kann ich in dieser Klasse kein Integer wrapper Objekt instanzieren,
also z.B.
Code:
Integer itgr = new Integer(10);
funktioniert nicht. Auch Integer.parseInt usw wird nicht erkannt.
Wenn ich jedoch ein neues Projekt eröffne und etwas wie:


Code:
public static void main(String[] args) {
 
   int i;
   Integer itgr = new Integer(10);
   i = itgr.intValue();
 
}
versuche, klappt alles tadellos.

in den Properties der klasse ist das compiler compliance level auf 6.0 gestellt.
Habe dies sowohl mit NetBeans als auch mit Eclipse versucht, ohne Erfolg.

Wenn mir also jemand sagen könnte, warum dies in dieser Klasse nicht funktioniert, wäre ich sehr dankbar...

Gruss, David
 

Wildcard

Top Contributor
Ersetze 'funktioniert nicht' bitte mit einer sinnvollen Aussage. Wer sagt das es nicht funktioniert? Wie wird dir das mitgeteilt?
 

strad

Mitglied
ok, war vielleicht nicht verständlich:

if(this.get(0).intValue()<val.intValue()){
// do something
}

sollte meiner Meinung nach 2 int Werte vergleichen, nämlich den int value des Integers in dieser arrayList an der stelle 0 (this.get(0).intValue() ) und den int value des Integers val ( val.intValue() ).

Eclipse sagt: "The method intValue() is undefined for the type Integer"
und java.lang.*; habe ich natürlich importiert.
 

Wildcard

Top Contributor
Sicher das du dich nicht einfach vertippt hast?
Schon das sieht sehr seltsam aus. Was ist denn this? Ich sehe hier keine Klasse die eine Methode get(int i) hat.
Code:
this.get(0).intValue()<val.intValue()
 

strad

Mitglied
ja, wegen dem vertippen bin ich mir sicher.

die methode get(int i) ist von der Klasse ArrayList, die ich ja mit extends vererbe.
this bedeutet hier einfach, dass ich das element von dieser Instanz von sortedIntArrayList will.

auszug aus der api:

"get(int index)
Returns the element at the specified position in this list."
 
S

SlaterB

Gast
und solche Grundlagen testet du in einer Klasse, in der auch komischer Code wie
> saExp.add(2);
> saExp.add(9);
> saExp.add(22);
> saExp.add(69);

steht?

ich würde das in einer Testklasse

Code:
public class Test
{
    public static void main(String[] args)
    {
        int i = new Integer(4).intValue();
    }
}
ohne jede imports testen, klappt das bei dir?

natürlich hast du mit JUnit eine bestimmte Umgebung, in der du nicht alles kontrollieren kannst,
aber bitte auch da eine einfachst mögliche leere Klasse nehmen,
insbesondere alle eigenen Klassen entfernen,
idealerweise in einem eigenen package, gar eigenen Projekt/ Workspace/ (.. Entwicklungsumgebung/ Rechner ;) )

wo funktioniert es, ab wann funktioniert es nicht mehr?

hast du eine eigene Klasse Integer definiert oder importierst du Fremdlibaries, in denen eine Klasse Integer existiert?
was kommt bei
System.out.println(Integer.class.getName()); raus?

und wie gesagt bitte (erstmal) nicht mit deiner ArrayList oder sonstwas testen,
sondern ganz elementar
int i = new Integer(4).intValue();
 

Wildcard

Top Contributor
Ach die Klasse erbt von ArrayList? ok...
Hast du eventuell noch eine andere Klasse die Integer heißt?
 

strad

Mitglied
Code:
public class Test
{
    public static void main(String[] args)
    {
        int i = new Integer(4).intValue();
    }
}

habe ich soeben versucht, dies klappt, mit system.out.println(i) kriege ich 4... sowohl wenn ich ein total neues projekt nehme als auch in meinem obigen projekt.

bei
System.out.println(Integer.class.getName());
sagt mir eclipse: "illegal class literal for the type parameter Integer".
Es ist, als ob eclipse die Klasse Integer gar nicht kennen würde.

meine imports:

import java.util.*;
import java.lang.*;
import junit.framework.TestCase;


in junit.framework existiert auch keine klasse Integer
 

Wildcard

Top Contributor
Hast du schon das naheliegenste gemacht und Eclipse neu gestartet? Refresh? Den Workspace gewechselt?
 

happy_robot

Bekanntes Mitglied
Code:
public class SortedIntArrayList<Integer> extends ArrayList<Integer> 
...
Die Angabe des ersten <Integer> ist nicht notwendig. Keine Ahnung ob's hilft, aber vielleicht verwirrt's den Compiler. :D

Statt der Klasse Integer solltest Du überall den primitiven typ int nutzen, ausser bei Typangaben wo Referenzdatentypen zur Definition oder Deklaration benötigt werden.


Schau mal nach ob das Projekt auch ein JDK/JRE > = 1.5 nutzt.
 

Wildcard

Top Contributor
ugh. Der ist's natürlich. Wenn dann müsste es schon <T extends Integer> sein.
Du verdeckst die Klasse Integer mit falsch eingesetzten Generics...
 

strad

Mitglied
happy_robot hat gesagt.:
Code:
public class SortedIntArrayList<Integer> extends ArrayList<Integer> 
...
Die Angabe des ersten <Integer> ist nicht notwendig. Keine Ahnung ob's hilft, aber vielleicht verwirrt's den Compiler. :D

Statt der Klasse Integer solltest Du überall den primitiven typ int nutzen, ausser bei Typangaben wo Referenzdatentypen zur Definition oder Deklaration benötigt werden.

Das war das Problem! Danke für die kompetente Hilfe!

So, nun kann ich weiterarbeiten mit meinem "komischen" code
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Datentypen ArrayList in Integer konvertieren Allgemeine Java-Themen 3
mrStudent The method append is not applicable for the arguments (Queue<Integer>, Queue<Integer>) Allgemeine Java-Themen 4
O JSON in Integer parsen Allgemeine Java-Themen 5
D Kgv aller Paare aus einem Array mit n integer berechnen Allgemeine Java-Themen 5
D Integer-Array variabler Größe mit Zahlen befüllen (Schleifen) Allgemeine Java-Themen 0
J Mit Lombok Integer Range prüfen Allgemeine Java-Themen 6
L Variablen Eigenes Objekt wie z.B. einen Integer zuweisen Allgemeine Java-Themen 3
R Datentypen Korrekte integer in Hex ASCII Konvertierung und serialisierung Allgemeine Java-Themen 1
B List<Integer> ist List<Double> ? Allgemeine Java-Themen 6
E String in Zahl umwandeln, ohne Befehl Integer.parseInt Allgemeine Java-Themen 3
J Eine bestimmte Zahl im Integer ändern Allgemeine Java-Themen 9
V Eingegeben String Splitten und in Integer umwandeln Allgemeine Java-Themen 2
J Transfer von Integer zwischen zwei Clients - RMI Allgemeine Java-Themen 4
heyluigi Random Integer Array Ausgabe nach Größe sortieren Allgemeine Java-Themen 6
X Integer.numberOfTrailingZeros() Allgemeine Java-Themen 1
K Array, Int expected, Integer found Allgemeine Java-Themen 5
HarleyDavidson Best Practice Integer-Zahlenfolge über mehrere Programmstarts Allgemeine Java-Themen 7
B Transferable in String/Integer umwandeln Allgemeine Java-Themen 11
K Input/Output Integer.parseInt() an Textdateien anwenden Allgemeine Java-Themen 2
D Beste Collection für Integer Allgemeine Java-Themen 4
Zettelkasten Double --> Integer Allgemeine Java-Themen 4
S Variablen Prüfen ob Number vom Typ Integer, Float, Double, ... ist Allgemeine Java-Themen 2
O Input/Output Textfeld: nur Integer annehmen Allgemeine Java-Themen 9
T int <-> integer, double <-> Double... Allgemeine Java-Themen 2
P JFormattedTextField für durch Semikolon getrennte Integer-Werte gesucht / Regulärer Ausdruck Allgemeine Java-Themen 3
GianaSisters Klassen ArrayList Index Integer int Allgemeine Java-Themen 5
G Datentypen JGoodies Binding und JSpinner mit Integer Allgemeine Java-Themen 2
L Problem mit Integer.parseInt Allgemeine Java-Themen 17
C Benchmark: ArrayList<Integer>, Integer[], int[] Allgemeine Java-Themen 10
Rudolf Aus Collection<Integer> eine Zahl machen Allgemeine Java-Themen 2
O Nach parse von String zu Integer verliere ich Programmablauf! Allgemeine Java-Themen 10
Z Cast von Long zu Integer funktionert nicht Allgemeine Java-Themen 3
E Zweidimensionales Array Integer[10 000][10 000] -> out of memory? Allgemeine Java-Themen 4
T Integer aus InputStream lesen Allgemeine Java-Themen 3
S String[] in Integer umwandeln Allgemeine Java-Themen 16
K Heap-Volllaufen bei ArrayList<Integer> Allgemeine Java-Themen 9
C Character in Integer Allgemeine Java-Themen 12
D Double to Integer - ist das möglich? Allgemeine Java-Themen 3
R Anführungszeichen Integer.valueOf(String).intValue(); Allgemeine Java-Themen 6
H Integer/String Allgemeine Java-Themen 9
MQue byte[] Array to Integer Allgemeine Java-Themen 4
J Mit mehrdimensionalen Integer-Arrays arbeiten Allgemeine Java-Themen 17
R Eigene ArrayList vom Typ Short, Integer oder Double Allgemeine Java-Themen 4
G erzeugen von "ArrayList<Integer>[][]" Allgemeine Java-Themen 7
M Integer.parseInt Allgemeine Java-Themen 4
G enum Integer zuweisen Allgemeine Java-Themen 14
G Integer aus String Allgemeine Java-Themen 4
X cannot convert from Object[] to Integer[] Allgemeine Java-Themen 2
B 16Bit Integer aus ByteArray im Little Endian Format Allgemeine Java-Themen 17
O java.lang.NumberFormatException für normalen integer Allgemeine Java-Themen 4
T Integer hhmm addieren Allgemeine Java-Themen 11
MQue Integer in String Allgemeine Java-Themen 2
G Datumswert String in Integer umwandeln Allgemeine Java-Themen 2
P Integer und Bit-operationen Allgemeine Java-Themen 21
M Java 1.4 und Integer Allgemeine Java-Themen 3
G ArrayList<String> to ArrayList<Integer Allgemeine Java-Themen 2
J Integer Array Wert vorhanden? Allgemeine Java-Themen 6
M String nach Integer und führende Nullen Allgemeine Java-Themen 6
B Plaintext Integer einlesen und verarbeiten Allgemeine Java-Themen 3
R cast Integer[] zu int[] Allgemeine Java-Themen 2
D byte nach integer? Allgemeine Java-Themen 4
MQue Object in Integer umwandeln Allgemeine Java-Themen 3
H Integer#valueOf(int) bei 1.4 Allgemeine Java-Themen 7
M Datenstrukrue, List<Map<Integer, Map<String, . Allgemeine Java-Themen 2
M Integer in String umwandeln Allgemeine Java-Themen 7
S Object nach Integer umwandeln Allgemeine Java-Themen 13
R Integer will sich nicht lesen lassen! Allgemeine Java-Themen 9
G Umwandlung Byte in Integer Allgemeine Java-Themen 12
M reflection Integer != int ? Allgemeine Java-Themen 3
P int != Integer Allgemeine Java-Themen 3
N Prüfen ob ein String in einen Integer umgewandelt werden kan Allgemeine Java-Themen 4
P Class zu Integer, String, Double etc. Allgemeine Java-Themen 11
S Integer-Zahlen in Excel-Sheet schreiben Allgemeine Java-Themen 10
T JNI: jcharArray: warning: cast to pointer from integer of. Allgemeine Java-Themen 5
R Float richtig in Integer ? Allgemeine Java-Themen 4
T Integer und TextFelder Allgemeine Java-Themen 3
S Integer-splitten für Abfrage. Allgemeine Java-Themen 4
M Index eines Arrays ermitteln und als Integer ausgeben Allgemeine Java-Themen 7
B Integer zählen bzw. speichern Allgemeine Java-Themen 3
H Array nimmt keinen in Integer konvertierten String auf! Allgemeine Java-Themen 26
H Prüfen, ob es sich um ein Integer handelt Allgemeine Java-Themen 4
J Integer.parseInt funktioniert nicht immer Allgemeine Java-Themen 3
G Nur Integer Werte in JTextField Allgemeine Java-Themen 4
V Typumwandlung Integer, Float etc in String Allgemeine Java-Themen 4
C String in Integer wandeln Allgemeine Java-Themen 17
izoards doc to pdf Konvertieren... Allgemeine Java-Themen 43
M Java 8 nach Java 6 konvertieren Allgemeine Java-Themen 7
J Java zu C# konvertieren? Allgemeine Java-Themen 4
K Methodenaufruf mit String / String zu Objekt konvertieren Allgemeine Java-Themen 8
RalleYTN float in WORD konvertieren Allgemeine Java-Themen 1
RalleYTN JOGL Texture in BufferedImage konvertieren Allgemeine Java-Themen 1
C String zu Int konvertieren Allgemeine Java-Themen 9
P List<Type> Konvertieren in List<List<Type>> Allgemeine Java-Themen 3
RalleYTN Audiodatein(.ogg/.wav) in Text konvertieren Allgemeine Java-Themen 0
M ArrayList mit verschiedenen Datentypen in String konvertieren Allgemeine Java-Themen 10
B .txt Datei in einen kompletten String konvertieren Allgemeine Java-Themen 20
C String in double[][] konvertieren! Allgemeine Java-Themen 5
R MS Word in PDF konvertieren Allgemeine Java-Themen 1
M ArrayList<Foo> in ein Foo[] konvertieren? Allgemeine Java-Themen 8
P Datentypen String-Daten zu Byte-Zahlen konvertieren - Komme nicht weiter nach vielem versuchen :-/ Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben