gpt4 book ai didi

java - 如何在 BlueJ "Create Object"对话框中输入 LocalDate 值

转载 作者:太空宇宙 更新时间:2023-11-04 11:12:05 26 4
gpt4 key购买 nike

我不想将日期格式化为 YYYY-MM-DD 或 dd/MM/YYYY。我问的是 LocalDate 的文字格式。

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

屏幕截图将显示我正在尝试执行的操作Ignore the Error part at the bottom

现在,从构造函数中我们知道它需要一个 int、LocalDate 和一个 double。我在网上查了一下,发现

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

java.time.LocalDate: A LocalDate instance holds a date without a time zone, in ISO-86011 calendar system. LocalDate has the default format ‘YYYY-MM-DD’ as in ‘2016-12-12’.

所以我会在 10001 中输入一个正常数字作为 testID,而 double 则类似于 50.5我还知道,为了注册一个字符串(如果需要的话),我需要将它括在“string”内

但是我尝试了各种方法来输入日期,但都会出现错误

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

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

另一方面,“30/05/2018”会给我

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

如果我尝试 2018 年 5 月 30 日,它会说

Error: ';' expected

如果我尝试“2018-05-30”,它会说

Error: unclosed character literal

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

我真的需要知道 BlueJ 希望我如何输入它。因为网上BlueJ的资源太稀少了。

<小时/>

代码:

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),但至少这是有效的。

<小时/>

另一个细节:a date has no format 。像 LocalDate 这样的类只保存值(在本例中,它具有年、月和日值),但日期本身根本没有格式。相同的日期可以用多种不同的格式表示:May 30th 20182018-05-3030/05/18 是不同的格式,但都表示相同的日期。日期对象仅保存值,您可以选择想要表示它的任何格式。

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

关于java - 如何在 BlueJ "Create Object"对话框中输入 LocalDate 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45881388/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com