【问题标题】:Incompatible types - found java.lang.String but expected int, in java不兼容的类型 - 在 java 中找到 java.lang.String 但预期为 int
【发布时间】:2012-06-02 03:56:30
【问题描述】:

显示从今天起 100 天的日期、您的出生日期和出生日期后 10,000 天的日期。我已经完成了所有这些,但我想更进一步,我希望用户能够输入从今天起他/她希望知道日期的天数(如果这有任何意义的话...)。这是我正在处理的代码部分的样子:

 public class calendarProjectTest
    {
    public static void main(String[] args)
    { GregorianCalendar cal = new GregorianCalendar(); //declare today's date
    GregorianCalendar myBirthday = new
    GregorianCalendar(1990, GregorianCalendar.JUNE, 9); //declare my birthday
    System.out.println("Please enter a number greater than 0:");
    Scanner keyboard = new Scanner(System.in);
    String number = keyboard.next();
    int value = number;
    cal.add(GregorianCalendar.DAY_OF_MONTH, number);

我正在使用 Bluej,它说“不兼容的类型 - 找到 java.lang.String 但预期为 int” 我不知所措。我不知道该怎么做。任何建议都会很棒。是的,我知道没有结束括号。

【问题讨论】:

    标签: java gregorian-calendar


    【解决方案1】:

    改变这个:

    cal.add(GregorianCalendar.DAY_OF_MONTH, Integer.parseInt(number));
    

    docs 可以看出,add() 方法需要两个参数为int

    【讨论】:

      【解决方案2】:

      使用这个:

      int value = Integer.parseInt(number);
      

      【讨论】:

        【解决方案3】:

        问题出在这里

        String number = keyboard.next();
        int value = number;
        

        改为使用:

        int value = keyboard.nextInt(); // you will get parsed int value
        cal.add(GregorianCalendar.DAY_OF_MONTH, value);
        

        【讨论】:

          【解决方案4】:

          Keyboard.next(); 返回一个字符串,而不是一个整数。

          所以 int value = number 试图将字符串值分配给 int 类型。试着把它改成:int value = Integer.parseInt(number);

          想要更多关于GregorianCalendarhttp://www.vogella.com/articles/JavaDateTimeAPI/article.html的信息

          【讨论】:

            猜你喜欢
            • 2012-12-28
            • 1970-01-01
            • 2017-10-03
            • 2017-03-29
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多