Syntaxisfout op token(s), verkeerd geplaatste constructie(s)

Hoe deze fout op te lossen —> Syntaxisfout op token(s), misplaatste constructie(s)
De fout is op de onderstaande regel aangegeven.
Opmerking: deze code is op internet gekopieerd om het als leermiddel te laten werken
Ik gebruik Eclipse
Bedankt!

import java.io.File;
import java.io.FileOutputStream;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class EcellTest22 {
     //Blank workbook
    XSSFWorkbook workbook = new XSSFWorkbook();
    //Create a blank sheet
    XSSFSheet sheet = workbook.createSheet("Employee Data");
    //This data needs to be written (Object[])
    Map<String, Object[]> data = new TreeMap<String, Object[]>();
     //
    data.put("1", new Object[]{"ID","NAME", "LASTNAME"}); <--Syntax error on token(s), misplaced construct(s) 
    data.put("2", new Object[]{1, "Amit", "Shukla"});
    data.put("3", new Object[]{2, "Lokesh", "Gupta"});
    data.put("4", new Object[]{3, "John", "Adwards"});
    data.put("5", new Object[]{4, "Brian", "Schultz"});
    //Iterate over data and write to sheet
    Set<String> keyset = data.keySet();
    int rownum = 0;
    for (String key : keyset) 
    {
        //create a row of excelsheet
        Row row = sheet.createRow(rownum++);
        //get object array of prerticuler key
        Object[] objArr = data.get(key);
        int cellnum = 0;
        for (Object obj : objArr) 
        {
            Cell cell = row.createCell(cellnum++);
            if (obj instanceof String) 
            {
                cell.setCellValue((String) obj);
            }
            else if (obj instanceof Integer) 
            {
                cell.setCellValue((Integer) obj);
            }
        }
    }
    try 
    {
        //Write the workbook in file system
        FileOutputStream out = new FileOutputStream(new File("C:\\Documents and Settings\\admin\\Desktop\\imp data\\howtodoinjava_demo.xlsx"));
        workbook.write(out);
        out.close();
        System.out.println("howtodoinjava_demo.xlsx written successfully on disk.");
    } 
    catch (Exception e)
    {
        e.printStackTrace();
    }
    }
}

Antwoord 1, autoriteit 100%

U moet alle verklaringen na de verklaringen in een codeblok plaatsen, b.v. methode in plaats van het klassenblok. Logischerwijs is het waarschijnlijk logisch om alle uitspraken in het codeblok te plaatsen, maar de niet-declaratieve uitspraken moeten in het nieuwe blok worden ingesloten

private void processFile() {
    data.put("1", new Object[]{"ID","NAME", "LASTNAME"}); // <--Syntax error  
     ...//snip
  } catch (Exception e) {
     e.printStackTrace();
  } 
}

Antwoord 2, autoriteit 38%

Probleem opgelost. Ik heb een nieuw project in Eclipse gemaakt, de POI (jar) aan de bibliotheken toegevoegd en de syntaxisfout wordt niet langer weergegeven.


Antwoord 3, autoriteit 25%

Plaats al uw code in een hoofdmethode:

public static void main(String[] args) {
        //All of your code goes here
}

Statements (dit omvat geen declaraties) moeten binnen een blok worden uitgevoerd. Het lijkt erop dat u een code test en dat dit niet bedoeld is als een echt object in uw code, dus u moet het in de hoofdmethode plaatsen.


Antwoord 4

Plak try and catch-blok in elke methode. Bovenstaande vraag je try-blok alleen binnen de klas, daarom krijg je Syntax Error-berichtof Leer diepgaand over try

public void yourMethod(){    
        try 
         {
           //Write the workbook in file system
           FileOutputStream out = new FileOutputStream(new File("C:\\Documents and Settings\\admin\\Desktop\\imp data\\howtodoinjava_demo.xlsx"));
                    workbook.write(out);
                    out.close();
                    System.out.println("howtodoinjava_demo.xlsx written successfully on disk.");
                } 
                catch (Exception e)
                {
                    e.printStackTrace();
            }
        }

Other episodes