Search code examples
javacsvcharsequence

Writing CSV file. myPackage.MyClass cannot be cast to java.lang.CharSequence


I need to write List<MyClass> myList into CSV file. In particular I need to write values. MyClass has the following implementation:

public class MyClass {
    private Object[] values;
//...
    @Override
    public String toString() 
      {
        String line = "";
        for (int i=0; i<this.getSize(); i++) {
            //if (this.values[i] != null) {
                line = line + this.values[i] + " ";
            //}
        }
        return line;
     }
}

The code is the following:

private void saveSolutionToCSV(List<MyClass> solution) {
    int columnSize = solution.get(0).getSize();
    try {
      FileWriter writer = new FileWriter("test.csv");
      Iterator result = solution.iterator();
      while(result.hasNext()) {
         for(int i = 0; i < columnSize; i++) {
            CharSequence element = (CharSequence)result.next(); 
            writer.append(element);
            if(i < columnSize - 1)
             writer.append(',');
         }
         writer.append('\n');
      }
    }
    catch(Exception e)
    {
      e.printStackTrace();
    }
}

And the error message is the following:

java.lang.ClassCastException: myPackage.MyClass cannot be cast to java.lang.CharSequence

How to solve this problem? Thx.


Solution

  • Try:

     String element = result.next().toString(); 
     writer.append(element);
     if(i < columnSize - 1)
       writer.append(',');