Ich habe gerade den Buchauszug Crafting Java with Test-Driven Development, Part 6: Refactoring Tests gelesen, dabei ist mir ein seltsamer Parameter aufgefallen:
Zuerst dachte ich das das "..." ein Platzhalter ist, aber warum sollte man nur
für einen Array-Of-String (stimmt nicht ganz) das nicht gleich so angeben?Also ran an den Editor erster Wahl (vim) und reinklopfen. Überraschung, der Code funktioniert wirklich!!!
Hier mein kompletter Testcode - nur dafür wesentliche Auszüge aus dem obigen Artikel - nur um zu testen ob das überhaupt funzt, falls es wen interessieren sollte:
Java
import java.util.*;
public class JavaTest {
public static final int CAPACITY = 10;
private List<String> players = new ArrayList<String>();
public static void main( String [] args ) {
JavaTest jt = new JavaTest();
jt.testAddMultiplePlayers();
}
public void add( String player ) {
players.add( player );
}
public List<String> players() {
return players;
}
public void testAddMultiplePlayers() {
for (int i = 0; i < JavaTest.CAPACITY; i++)
this.add("" + i);
assertPlayers("0", "1", "2", "3", "4", "5", "6", "7", "8", "9");
}
private void assertPlayers(String... expected) {
System.out.println( "Expected: " + expected.length + ", Got: " + this.players().size()) ;
int i = 0;
for (String player: this.players())
System.out.println( "Player: Expected: " + expected[i++] + ", Got: " + player);
}
}
Alles anzeigen
Kann mir da mal wer erklären, was da genau passiert? Funktioniert das nur mit Generics? Ich gehe mal davon aus, das das eine Java5-Erfindung ist.