在 awt 或 sql 包中没有为 new Date() 找到合适的构造函数[重复]
Posted
技术标签:
【中文标题】在 awt 或 sql 包中没有为 new Date() 找到合适的构造函数[重复]【英文标题】:No suitable constructor found for new Date() in awt or sql package [duplicate] 【发布时间】:2018-06-26 11:47:15 【问题描述】:我已经导入了java.sql.*;
,但它显示没有找到合适的构造函数
Date() Date
d=new Date();
这是什么意思?我很困惑:Date
类是否在 sql 包中可用?我还导入了java.util.Date
。
【问题讨论】:
我评论了 java.util 然后它显示这个错误????? 什么错误?向我们展示一些代码,以便我们能够理解您的奇怪问题... 学习使用 JavaDoc。查看java.util.Date和java.sql.Date的构造函数总结。 在发布之前彻底搜索 Stack Overflow。这个话题已经讨论过很多次了。具体来说,搜索“java.time”和“Instant”。 JsonMappingException: No suitable constructor found for type [simple type, class ]: can not instantiate from JSON object的可能重复 【参考方案1】:让我先让步:真正解决您的问题的好方法是完全避免使用早已过时的java.sql.Date
类。它曾经用于将日期存储到 SQL 数据库中并取回它们,但现在最好使用现代 Java 日期和时间 API java.time 中的LocalDate
。获取当前日期:
LocalDate ld = LocalDate.now(ZoneId.of("Asia/Shanghai"));
如果不是亚洲/上海,请替换所需的时区。
但是,回答您的问题:当您键入 new Date()
时,您正在尝试调用不带任何参数的构造函数。这需要一个没有任何参数的构造函数。很多类都有这样的构造函数,但不是所有的类。
现在看看the API documentation of the java.sql.Date
class。你会看到它有两个构造函数,Date(int year, int month, int day)
和 Date(long date)
(前者已被弃用,这意味着如果有任何方法可以避免它)。两个构造函数都有参数,因此它们都不匹配您尝试调用不带参数的构造函数。换句话说,它们都不适合您尝试的调用。这就是消息的含义。
该类当然在java.sql
包中可用。问题仅在于构造函数(并且类已过时,但我在重复自己)。
【讨论】:
以上是关于在 awt 或 sql 包中没有为 new Date() 找到合适的构造函数[重复]的主要内容,如果未能解决你的问题,请参考以下文章
Java awt包中Graphics类中drawChars怎么用