当前位置: 首页 > 面试题库 >

如何在BlueJ“创建对象”对话框中输入LocalDate值

仲孙宇定
2023-03-14
问题内容

我不尝试用YYYY-MM-DD或dd / MM / YYYY格式化日期。我在问
LocalDate的字面格式。

我刚开始学习Java,并且正在使用称为BlueJ的IDE。我想
创建一个测试方法。

屏幕截图将显示我正在尝试做的事情 忽略底部的错误部分

现在,从构造函数开始,我们知道它需要一个int,LocalDate和一个
double。我在网上搜索后发现

https://www.javabrahman.com/java-8/java-8-working-with-localdate-localtime- localdatetime-tutorial-with-examples /

java.time.LocalDate:
在ISO- 86011日历系统中,LocalDate实例保存一个不带时区的日期。LocalDate具有默认格式’YYYY-MM-DD’,
如‘2016-12-12’中一样。

因此,我将一个普通数字放在10001中作为testID,并将double
变成50.5之类的东西,我也知道要注册一个字符串(如果
需要),我需要将其括在“字符串”中

但是我已经尝试了各种方式输入日期,但我会遇到一个
错误

2018-05-30,30-05-2018,30 / 05/2018将给我

Error: incompatible types: Int cannot be converted to java.time.LocalDate

“30/05/2018” on the other hand would give me

Error: Incompatible types: java.lang.String cannot be converted to java.time.LocalDate

If I try 30.05.2018 it would say

Error: ';' expected

If I try ‘2018-05-30’ it would say

Error: unclosed character literal

我没有办法尝试。因此,如果您能告诉我如何将其放入
其中,那就太好了。

我只是真的需要知道BlueJ如何让我输入它。因为
BlueJ的资源在线如此稀疏。

Code:

import java.time.LocalDate;
import java.util.ArrayList;
/**
 * Write a description of class TestPaper here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class TestPaper
{
    // instance variables - replace the example below with your own
    private int testID;
    private LocalDate testDate;
    private double testMarks;
    private ArrayList<MCQ> MCQDetails;

    /**
     * Constructor for objects of class TestPaper
     */
    public TestPaper(int testID, LocalDate testDate, double testMarks)
    {
        this.testID = testID;
        this.testDate = testDate;
        this.testMarks = testMarks;
        MCQDetails = new ArrayList<MCQ>() ; 
    }

/**
 * Accessor Method getTestID to get the testID
 *
 * @return int value of the choice ID
 */
public int getTestID(){
    return testID;
}

/**
 * Mutator Method to set the testID
 * 
 *  @param int format of the testID to set
 */
public void setTestID(int testID){
    this.testID = testID;
}

/**
 * Accessor Method getTestMarks to get the Test Marks
 *
 * @return double value of the test marks 
 */
public double getTestMarks(){
    return testMarks;
}

/**
 * Mutator Method to set the testMarks
 * 
 *  @param String format of the choice Description to be set
 */
public void setTestMarks(double testMarks){
    this.testMarks = testMarks;
}

    /**
 * Accessor Method getTestDate to get the testDate
 *
 * @return LocalDate value of the testDate
 */
public LocalDate getTestDate(){
    return testDate;
}

/**
 * Mutator Method to set the testDate
 * 
 *  @param LocalDate format of the testDate to set
 */
public void setTestDate(LocalDate testDate){
    this.testDate = testDate;
}

/**
 * Method addMCQ will allow users to add a MCQ Object to the list of MCQ
 *
 * @param addMCQ a MCQ Object
 * @return boolean will return true if it is successfully added or false if not
 */
public boolean addMCQ(MCQ MCQName)
{
    return MCQDetails.add(MCQName);
}

/**
 * Method removeMCQ to remove an MCQ object from the Arraylist
 *
 * @param MCQName A parameter of type MCQ 
 */
public void removeMCQ(MCQ MCQName)
{
    MCQDetails.remove(MCQName);
}

/**
 * Method listMCQ to return a list of MCQ arraylist
 *
 * @return The return value of MCQDetails (MCQ Arraylist)
 */
public ArrayList<MCQ> listMCQ()
{
    return MCQDetails;
}

    public MCQ findMCQ(int MCQID)
{
    for(MCQ m : MCQDetails)
    {
        if(m.getQuestionID() == MCQID)
        {
            return m;
        }
    }
    return null;
}

问题答案:

如评论中所述,解决方案是添加创建的代码
LocaDate,但是bluej需要带有包
前缀“ java.time”的标准类名:

java.time.LocalDate.of(2018, 5, 30)

不知道为什么它不仅仅适用于LocalDate.of(…)(甚至与
导入的correclty类一起使用),但至少可以奏效。

只是另一个细节:日期没有
格式。
诸如此类的类LocalDate仅包含值(在这种情况下,它具有年,月
和日的值),但日期本身根本没有格式。同日可以
在许多不同的格式表示:May 30th 2018,2018-05-30,
30/05/18有不同的格式,但都代表相同的日期。日期
对象仅包含值,并且您可以选择想要
表示它的任何格式。

当您打印时LocalDate,它会隐式调用toString(),
默认情况下会选择yyyy-MM-dd格式,即ISO
8601格式,但是正如我所说,这
只是格式化日期的多种可能方式之一(尽管值始终
保持不变)。告诉“日期具有格式”是错误的并且具有误导性。



 类似资料:
  • 我没有尝试将日期格式化为YYYY-MM-DD或DD/MM/YYYY。我想问一下LocalDate的文字格式。 我刚开始学习Java,我正在使用这个名为BlueJ的IDE。我想创建一个测试方法。 从构造函数中我们知道它需要int、LocalDate和double。我在网上搜索了一下,找到了 https://www.javabrahman.com/java-8/java-8-working-with-

  • 问题内容: 我需要在JavaFX中创建一个对话框。我知道我可以通过修改模式,所有者和可调整大小的属性来使舞台表现得像对话框。 但是,如何从舞台窗口中隐藏“最小化”和“最大化”按钮?典型的对话框只有“关闭”按钮。 问题答案: 在Windows 7下,在显示窗口之前初始化为StageStyle.UTILITY将创建一个仅具有关闭按钮而没有最小化或最大化按钮的窗口: 如果您需要一整套基本的JavaFX对

  • 我需要用JavaFX创建一个对话框。我知道我可以通过修改modal、owner和resizable属性使Stage的行为像一个对话框。 但是我如何从舞台窗口隐藏“最小化”和“最大化”按钮呢?典型的对话框只有“关闭”按钮。

  • 我的目标是使用MFC创建一个无框架对话框,它是像图中所示的普通矩形,我对MFC应用程序有基本的了解。

  • 问题内容: 我有一个运行一些嵌入式Python脚本的MFC应用程序。我正在尝试使该嵌入式脚本创建模态对话框之一,但是我没有取得太大的成功。 谁能指出我进行模态对话的方式吗?我需要为此使用Windows函数还是仅Tk或Python函数就足够了? 对于我搜索过的内容,似乎以下功能组合可以发挥作用,但它们似乎没有按我期望的方式工作: 问题答案: 是使窗口成为“应用程序模式”的适当机制。也就是说,它从同一

  • 我试图在对话框中创建一个编辑文本框,用于输入密码。当我在做的时候,我不能做。我是这方面的初学者。请帮我做这件事。 形象 我想得到作为