2015-05-22 2 views
-1

Как инициализировать переменную экземпляра при несоответствии типа?Java Как инициализировать переменную экземпляра при несоответствии типа

public class Djia implements Comparable<Djia>{ 
     // instance variables 
     private GregorianCalendar date; 
     private double opening; 
     private double closing; 

     public Djia(String dt, double opening, double closing){ 

      this.date=dt; // **** Type mismatch, can't convert from String to GregorianCalendar**** 

      this.opening=opening; 
      this.closing=closing; 
     } 
} 

ответ

1

Преобразуйте Строка dt в GregorianCalendar date

Пример:

DateTimeFormatter formatter = 
    DateTimeFormat.forPattern("ddmmyyyy").withOffsetParsed(); 
DateTime dateTime = formatter.parseDateTime("dt"); 
GregorianCalendar cal = dateTime.toGregorianCalendar(); 

Затем назначьте:

this.date = cal; 

Это не даст ошибку в Casting

+0

время Joda не является частью JRE (по крайней мере JRE7). Я думаю, что DateFormat - лучший способ. –

1

Вам необходимо преобразовать вход в правильный тип объекта. В этом случае используйте java.text.SimpleDateFormat или аналогично чтению строки и выведите дату. Вам потребуется либо четко определенный формат даты (например, yyyy/MM/dd), либо определить один форматтер в формате и выбрать правильный, проанализировав ввод.

1

this.date=dt; вы не можете сделать это здесь, как date является Date объектом и dt является String.

Это то, что вы могли бы смотреть: this.date = new SimpleDateFormat("YOUR FORMAT").parse(dt); (учитывая, что dt вот ваша дата в строку)

Смежные вопросы