We help IT Professionals succeed at work.

We've partnered with Certified Experts, Carl Webster and Richard Faulkner, to bring you two Citrix podcasts. Learn about 2020 trends and get answers to your biggest Citrix questions!Listen Now

x

Illegal Start of Expression

redcoder
redcoder asked
on
Medium Priority
434 Views
Last Modified: 2008-02-01
What is wrong with this code ? It tells me : Illegal Start of Expression..  :-|

import javax.microedition.lcdui.*;
import java.io.IOException;

public class PlayScreen extends Form implements CommandListener
{
      private Command okCommand;
      private String[] myChoice;
      private Display display;
      private String recStore;
      private ChoiceGroup answerChoices ;
      private String question = null;
      private String[] table;
      private String str1,str2,str3,str4;

      
      
      public PlayScreen(int questNum)
      {
            
            super("Millionaire Game");
            try
            {
                  
                  okCommand = new Command("OK", Command.OK,0);
                  
                  //add OK at soft button
                  addCommand(okCommand);
                  
                  setCommandListener(this);
                  
                  
                  //retrieve one record from record store
                  recStore = Millionaire.pd.getOneRecord(questNum);
            //      append(recStore);
                  
                  //retrieve question from record store
                  question = Millionaire.pd.getQuestion(recStore);
                  append(question);
                  
                  //retrieve choice selection from record store
                  str1 = Millionaire.pd.getChoice1(recStore);
                  str2 = Millionaire.pd.getChoice2(recStore);
                  str3 = Millionaire.pd.getChoice3(recStore);
                  str4 = Millionaire.pd.getChoice4(recStore);

                  table = {str1,str2,str3,str4};
                  answerChoices = new ChoiceGroup("AaAa", ChoiceGroup.EXCLUSIVE, table, null);
            append(answerChoices);
                  
                  
                  
            }
            catch (Exception e)
            {
                  e.printStackTrace();
            }
      }
Comment
Watch Question

Author

Commented:
This is the whole message I got:

C:\WTK22\apps\Millionaire(2)\src\PlayScreen.java:49: illegal start of expression
                  table = {str1,str2,str3,str4};
You could initialize table thst only when declaring it:

String[] table = {str1,str2,str3,str4};

but in this case You'll have to assign every items to its corresponding values:

table[0] = str1;
table[1] = str2;
table[2] = str3;
table[3] = str4;

Not the solution you were looking for? Getting a personalized solution is easy.

Ask the Experts

Author

Commented:
for(int i=1 ; i <=4; i++)
{
choices[i] = str+""+i;
}
      
I try use for loop but could figure out how to arrange i=1,2,3,4 to str;            
You can not convert any object to represent local variables name

str+""+1  will never be the variable  str1

You could do something like that:

String arr = {str1,str2,str3,str4};
table = arr;
arr = null;

but this is only unneeded resource usage on the mobile device.

Author

Commented:
ALright then i rather use your method above.
table[0] = str1;
table[1] = str2;
table[2] = str3;
table[3] = str4;


But I couldn't append the table using :

append(table);
Mick BarryJava Developer
CERTIFIED EXPERT
Top Expert 2010

Commented:
try:

for (int i=0; i<table.length; i++) append(table[i]);

Author

Commented:
Receive this error:

javax.microedition.rms.InvalidRecordIDException
      at javax.microedition.rms.RecordStore.findRecord(+18)
      at javax.microedition.rms.RecordStore.getRecord(+22)
      at PersistantData.getOneRecord(+31)
      at PlayScreen.<init>(+52)
      at Millionaire.commandAction(+31)
      at javax.microedition.lcdui.Display$DisplayAccessor.commandAction(+282)
      at javax.microedition.lcdui.Display$DisplayManagerImpl.commandAction(+10)
      at com.sun.midp.lcdui.DefaultEventHandler.commandEvent(+68)
      at com.sun.midp.lcdui.AutomatedEventHandler.commandEvent(+47)
      at com.sun.midp.lcdui.DefaultEventHandler$QueuedEventHandler.run(+250)
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
      at java.lang.String.substring(+45)
      at PersistantData.parse(+81)
      at PersistantData.getQuestion(+5)
      at PlayScreen.<init>(+66)
      at Millionaire.commandAction(+31)
      at javax.microedition.lcdui.Display$DisplayAccessor.commandAction(+282)
      at javax.microedition.lcdui.Display$DisplayManagerImpl.commandAction(+10)
      at com.sun.midp.lcdui.DefaultEventHandler.commandEvent(+68)
      at com.sun.midp.lcdui.AutomatedEventHandler.commandEvent(+47)
      at com.sun.midp.lcdui.DefaultEventHandler$QueuedEventHandler.run(+250)
Mick BarryJava Developer
CERTIFIED EXPERT
Top Expert 2010
Commented:
looks like maybe questNum is invalid id
what does your append function look like ?

Or are you using StringBuffer.append ?

Author

Commented:
No, I didn't use any stringbuffer..


objects is right.

The problem comes from questNum.  
I have fixed it..

thx
Access more of Experts Exchange with a free account
Thanks for using Experts Exchange.

Create a free account to continue.

Limited access with a free account allows you to:

  • View three pieces of content (articles, solutions, posts, and videos)
  • Ask the experts questions (counted toward content limit)
  • Customize your dashboard and profile

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.