moin,
ich programmiere mir gerade ein konsolen-auktionsspiel das über cmd laufen soll. beim testen hänge ich gerade meinen auktionator auf und kann mit der fehlermeldung nichts anfangen.
-auktionator ist ein singelton-Object
Fehlermeldung
Exception in thread "main" java.lang.IllegalMonitorStateException
at java.lang.Object.wait(Native Method)
at models.Auctioneer.listen(Auctioneer.java:18) //entspricht zeile 3 im angehängten code
at play.Test.main(Test.java:16) //aufruf der methode listen()
Java Result: 1
BUILD SUCCESSFUL (total time: 1 second)
Was muss ich ändern, damit mein Auktionator wieder aufwacht und die gebote nach oben treibt, sobald ein bieter einen höheren wert innerhalb einer bestimmten zeitspanne eingibt
ich programmiere mir gerade ein konsolen-auktionsspiel das über cmd laufen soll. beim testen hänge ich gerade meinen auktionator auf und kann mit der fehlermeldung nichts anfangen.
-auktionator ist ein singelton-Object
Fehlermeldung
Exception in thread "main" java.lang.IllegalMonitorStateException
at java.lang.Object.wait(Native Method)
at models.Auctioneer.listen(Auctioneer.java:18) //entspricht zeile 3 im angehängten code
at play.Test.main(Test.java:16) //aufruf der methode listen()
Java Result: 1
BUILD SUCCESSFUL (total time: 1 second)
Java:
public void listen(){
try{
wait( 1000);
while( scanner.hasNextDouble()){
raisePrice( 100);
wait( 1000);
}
waitForBitts( 100);
} catch(InterruptedException ex){
System.out.println( ex);
}
}
public void waitForBitts( double last){
System.out.println("no one else bidding?");
String[] calls ={ "once", "twice", "sold!"};
for( int i = 0; i <3; i++){
System.out.println( last +" going " +calls[ i]);
listen();
if( !calls[ i].equals( "sold") &&scanner.hasNext()){
if( scanner.nextDouble() >last){
raisePrice(last);
listen();
}
} else{
sell();
}
}
}
Was muss ich ändern, damit mein Auktionator wieder aufwacht und die gebote nach oben treibt, sobald ein bieter einen höheren wert innerhalb einer bestimmten zeitspanne eingibt
Zuletzt bearbeitet: