2

我在这一行的驱动程序类中遇到 Netbeans 错误:

System.out.print("Time waited is: " + (serializedTime - System.currentTimeMillis())/1000 + " secs.");

错误是:“找不到符号,符号:类出,位置:类系统,预期,类型的非法开始。

import domain.PersistentObject;
import domain.PopulationRecord;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import utilities.MiniProj2Utilities;


    public class MiniProj2Driver {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {

        // Make sure that you develop your main() method with reduced code as shown below. 
        // Not the use of private static methods in the driver called from main() method.

        // Read the CSV file records into a list of PopulationRecord objects...
        List<PopulationRecord> popList = MiniProj2Utilities.getDataRecords();

        // Display the list contents and size...
        MiniProj2Utilities.displayRecordsFromList(popList);

        // Create and populate the PersistentObject...
        PersistentObject po = MiniProj2Utilities.getPersistentObject(popList);
        try {
            ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("./data/population-record.ser"));
            oos.writeObject(po);
        } catch (IOException ex) {
        }

           long serializedTime = System.currentTimeMillis();

        System.out.println(po);

         try {
            Thread.sleep(5000);
        } catch (InterruptedException ex) {
            System.out.println("Sleep Error");
        }
        try {
            ObjectInputStream oos = new ObjectInputStream(new FileInputStream("./data/population-record.ser"));
            PersistentObject po1 = (PersistentObject)oos.readObject();
        } catch (IOException ex) 
        {
        } catch (ClassNotFoundException ex) {
        }
        }
        System.out.print("Time waited is: " + (serializedTime - System.currentTimeMillis())/1000 + " secs.");



    // Read the CSV file records into a list of PopulationRecord objects...
    private static List<PopulationRecord> getDataRecords() {
        BufferedReader br = null;
        String line = null;
        List<PopulationRecord> list = new ArrayList<PopulationRecord>();
        try {
            br = new BufferedReader(new FileReader("data/NST_EST2011_ALLDATA.csv"));
            br.readLine(); // Remove header line from file...
            while ((line = br.readLine()) != null) {
                String[] tokens = line.split(",");
                //System.out.println(line);            
                PopulationRecord pr = new PopulationRecord(
                    tokens[0], tokens[1], tokens[2], tokens[3], tokens[4],
                    Integer.parseInt(tokens[5]), Integer.parseInt(tokens[6]),
                    Long.parseLong(tokens[7]), Long.parseLong(tokens[8]),
                    Long.parseLong(tokens[9]), Long.parseLong(tokens[10]),
                    Long.parseLong(tokens[11]), Long.parseLong(tokens[12]),
                    Long.parseLong(tokens[13]), Long.parseLong(tokens[14]),
                    Long.parseLong(tokens[15]), Long.parseLong(tokens[16]),
                    Long.parseLong(tokens[17]), Long.parseLong(tokens[18]),
                    Long.parseLong(tokens[19]), Long.parseLong(tokens[20]),
                    Long.parseLong(tokens[21]), Long.parseLong(tokens[22]),
                    Long.parseLong(tokens[23]), Long.parseLong(tokens[24]),
                    Long.parseLong(tokens[25]), Long.parseLong(tokens[26]),
                    Long.parseLong(tokens[27]), Long.parseLong(tokens[28]),
                    Long.parseLong(tokens[29]));
                list.add(pr);
            }
        } catch (FileNotFoundException ex) {
            Logger.getLogger(MiniProj2Driver.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(MiniProj2Driver.class.getName()).log(Level.SEVERE, null, ex);
        }
        return list;
    }

    // Display the list contents and size...
    private static void displayRecordsFromList(List<PopulationRecord> list) {
        for (PopulationRecord record : list) {
            System.out.println(record);
        }
        System.out.println("Population records processed: " + list.size() + list.get(9));

    }

    private static PersistentObject getPersistentObject(List<PopulationRecord> list) {
        PersistentObject po = new PersistentObject();
        po.setSerializedTime(new Date());
        po.setPopulationList(list);
        return po;
    }
}
4

3 回答 3

2

一个问题是,您的System.out陈述是外部方法。

  }
        System.out.print("Time waited is: " + (serializedTime - System.currentTimeMillis())/1000 + " secs.");

把它移到大括号里面

        System.out.print("Time waited is: " + (serializedTime - System.currentTimeMillis())/1000 + " secs.");
  }
于 2012-11-16T21:32:52.707 回答
0
public class potpie {

    private int day   = 0;
    private int month = 0;
    private int year  = 0;

    public potpie(int d, int m, int y){
        day   = d;
        month = m;
        year  = y;

        /* 
        No error of symbol: class out --------> SINCE IT IS INSIDE METHOD
        */
        System.out.printf("This is today's date = %d %d %d", month, day, year);
    }
    /* 
    Cannot find symbol: class out     --------> SINCE IT IS OUTSIDE METHOD
    */
    System.out.printf("This is today's date     = %d %d %d", month, day, year);   
}
于 2015-01-05T11:39:17.893 回答
0

基本的事情是Java在封装上工作,即将代码和数据包装在一起,因此有了类的概念。现在要对类的实例变量进行操作,只能通过某种方法来实现。您的位置,即“System.out.print("your data");" 松散地躺在类的主体中,它具有类的实例变量。同样如前所述,要对实例变量进行操作,您可以仅使用方法或构造函数来执行此操作,因此由于此代码松散且没有调用它的方法,您会收到错误消息。因此,将其放入上面用户 Nambari 建议的方法中。

于 2015-09-19T06:19:05.597 回答