从字符串转换为对象时发生类型转换错误

6ss1mwsb  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(512)

下面是我正在执行的代码,第14行出现错误
类型不匹配:无法从字符串转换为timelimit

  1. TimeLimit timeLimitValues = timeLimitValues(clientCompanyMarketMapId,
  2. productCatagory, productSubCatagory, supplierId);
  3. String timeLimitValue = timeLimitValues.getTimeLimitValue();
  4. String timeLimitTC = timeLimitValues.getTimeLimitTC();
  5. timeLimitValues.getBookTravelDateTC();
  6. String isPaymentEnabledFlag = timeLimitValues.getIsPaymentEnbld();
  7. String isExpOnBkDate = timeLimitValues.getIsExponBkDate();
  8. String timeExpiryDate = null;
  9. TimeLimit expiryDate = new TimeLimit();
  10. if (isPaymentEnabledFlag.equals("Y")) {
  11. if (isExpOnBkDate.equals("Y")) {
  12. if (timeLimitTC.equals("DAYS")) {
  13. c.add(Calendar.DATE, Integer.parseInt(timeLimitValue));
  14. timeExpiryDate = sdf.format(c.getTime());
  15. expiryDate = timeExpiryDate;
  16. System.out.println("Expiry Date: " + timeExpiryDate);
  17. }

请帮助/引导

rekjcdws

rekjcdws1#

timeExpiryDate 在代码中声明为 String . expiryDate 被宣布为 TimeLimit .
你有电话吗

  1. expiryDate = timeExpiryDate;

因为你想分配一个 String 引用 TimeLimit 参考文献。
您需要编写某种转换方法,该方法需要 String 创造了一个 TimeLimit 从它那里。它可以是某个地方的实用方法,也可以是 TimeLimit(String timeRepresentation) 中的构造函数 TimeLimit 班级。比如你可以写

  1. expiryDate = new TimeLimit(timeExpiryDate);

  1. expiryDate = SomeClass.convertToTimeLimit(timeExpiryDate);

java不像c++(如果你已经习惯了的话)。java不会像c++那样自动调用“转换”构造函数。所以即使你已经定义了 TimeLimit(String) 构造函数,java不会自动调用它来进行转换。你需要明确地称呼它。
但无论如何,如果不在某个地方编写一些转换方法,然后调用它,就无法完成赋值。

展开查看全部

相关问题