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

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

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

TimeLimit timeLimitValues = timeLimitValues(clientCompanyMarketMapId,
                productCatagory, productSubCatagory, supplierId);

String timeLimitValue = timeLimitValues.getTimeLimitValue();
String timeLimitTC = timeLimitValues.getTimeLimitTC();
timeLimitValues.getBookTravelDateTC();
String isPaymentEnabledFlag = timeLimitValues.getIsPaymentEnbld();
String isExpOnBkDate = timeLimitValues.getIsExponBkDate();
String timeExpiryDate = null;
TimeLimit expiryDate = new TimeLimit();

if (isPaymentEnabledFlag.equals("Y")) {
    if (isExpOnBkDate.equals("Y")) {
        if (timeLimitTC.equals("DAYS")) {
            c.add(Calendar.DATE, Integer.parseInt(timeLimitValue));
            timeExpiryDate = sdf.format(c.getTime());
            expiryDate = timeExpiryDate;
            System.out.println("Expiry Date:   " + timeExpiryDate);

        }

请帮助/引导

rekjcdws

rekjcdws1#

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

expiryDate = timeExpiryDate;

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

expiryDate = new TimeLimit(timeExpiryDate);

expiryDate = SomeClass.convertToTimeLimit(timeExpiryDate);

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

相关问题