Java &引用;找不到符号符号:构造函数…”;在爪哇?
我有一个定义如下的类Java &引用;找不到符号符号:构造函数…”;在爪哇?,java,constructor,syntax-error,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 = formatte
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)
在编译过程中,我得到以下错误
cannot find symbol
symbol : constructor df(java.lang.String)
location: class df
我不明白为什么会发生这种情况,因为我在代码中定义了一个构造函数。有人能帮我解决这个问题吗
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);
}
}
请参阅。这不是构造函数。。。(构造函数有一个隐式的“返回类型”,即类的类型)。它具有显式返回类型,因此不是构造函数,而是名为
df
的普通方法
因此,当用作新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;
}
}
请处理变量名、命名约定和易变性redux:-)
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;
}
}