在Java中“找不到符号符号:构造函数......”

时间:2012-04-17 22:19:36

标签: java constructor syntax-error

我的课程定义如下......

public class df {
    String dt;
    String datestring;

    public String df(String dtstring) throws Exception {
        dt=dtstring;
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
        Date inpdate = formatter.parse(dt);
        datestring = formatter.format(inpdate);
        Date outpdate = formatter.parse(datestring);
        SimpleDateFormat newformatter = new SimpleDateFormat("dd/MM/yyyy");
        datestring = newformatter.format(outpdate);
        return datestring;
    }
}

我按如下方式创建此类的实例,其中rsnpos.getString(1)包含yyyy-MM-dd格式的日期(例如2010-01-01)......

new df(rsnpos.getString(1))

在编译期间,我收到以下错误...

cannot find symbol
symbol  : constructor df(java.lang.String)
location: class df

我不明白为什么会这样,因为我已经定义了一个构造函数,如我的代码所示。有人可以帮我解决这个问题。

2 个答案:

答案 0 :(得分:1)

public class df
     {
 String dt;
 String datestring;
 public df(String dtstring) throws Exception
        {
                dt=dtstring;
                SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
                Date inpdate = formatter.parse(dt);
                datestring = formatter.format(inpdate);
                Date outpdate = formatter.parse(datestring);
                SimpleDateFormat newformatter = new SimpleDateFormat("dd/MM/yyyy");
                datestring = newformatter.format(outpdate);
        }
    }

请参阅http://docs.oracle.com/javase/tutorial/java/javaOO/constructors.html

答案 1 :(得分:1)

那不是构造函数......(构造函数有一个隐式“返回类型”,类的类型)。它有显式返回类型,因此不是构造函数,而是名为df的普通方法。

因此,当用作new df(...)时,它无效,这正是错误消息所说的。另一方面,由于默认的无参数构造函数和方法 new df().df("x")String df(String)仍然“有效”。

请注意更新以将其更改为构造函数:

public class df 
{

  String dt;
  String datestring;
  // Remove return type (and keep matched name) to make it a constructor.
  public df(String dtstring) throws Exception
  {
    dt=dtstring;
    ...
    datestring = newformatter.format(outpdate);
    // Constructors cannot "return"
    // return datestring;
  }

}

请处理变量名称和命名约定以及mutability redux: - )