Java 工厂模式使用接口。获得;找不到符号“;
我遵循教程,试图创建自己的Factory模式类。这就是我得到的(最小化): 编译此代码时,我从编译器获得以下错误消息: 选择JAVA工具选项:-javaagent:/usr/share/JAVA/jayatanaag.jar Db.java:66:错误:找不到符号 Database d=newdatabasefactory.init(1,“localhost”,3306,“db” 符号:类init^ 位置:类数据库工厂 1错误 我不知道我做错了什么,以及如何解决这个问题。提前感谢!您在DatabaseFactory类中将“init”方法声明为静态 除掉新接线员Java 工厂模式使用接口。获得;找不到符号“;,java,Java,我遵循教程,试图创建自己的Factory模式类。这就是我得到的(最小化): 编译此代码时,我从编译器获得以下错误消息: 选择JAVA工具选项:-javaagent:/usr/share/JAVA/jayatanaag.jar Db.java:66:错误:找不到符号 Database d=newdatabasefactory.init(1,“localhost”,3306,“db” 符号:类init^ 位置:类数据库工厂 1错误 我不知道我做错了什么,以及如何解决这个问题。提前感谢!您在Datab
Database db = DatabaseFactory.init(1, "localhost", "db", "root", "root");
您在DatabaseFactory类中将“init”方法声明为静态
除掉新接线员
Database db = DatabaseFactory.init(1, "localhost", "db", "root", "root");
线路
Db.java:66: error: cannot find symbol Database d = new DatabaseFactory.init(1, "localhost", 3306, "db");
在DatabaseFactory
中,预期是名为“init”的静态内部类,如下所示:
public class DatabaseFactory {
public static class init {
public init(int i, String name, int port, String user, String pwd) {
...
}
}
}
但这根本不是您想要的。由于init()是一个静态方法,请使用以下简单方法调用它:
Database db = DatabaseFactory.init(param);
上面我没有指定您的参数。我注意到在您的代码中,init方法的签名是(int,String,String,String,String)
,但是根据错误消息,您使用(int,String,int,…)
调用它。请确保使用相同的参数类型调用它。行
Db.java:66: error: cannot find symbol Database d = new DatabaseFactory.init(1, "localhost", 3306, "db");
在DatabaseFactory
中,预期是名为“init”的静态内部类,如下所示:
public class DatabaseFactory {
public static class init {
public init(int i, String name, int port, String user, String pwd) {
...
}
}
}
但这根本不是您想要的。由于init()是一个静态方法,请使用以下简单方法调用它:
Database db = DatabaseFactory.init(param);
上面我没有指定您的参数。我注意到在您的代码中,init方法的签名是
(int,String,String,String,String)
,但是根据错误消息,您可以使用(int,String,int,?…)调用它
。确保使用相同的参数类型调用它。删除DatabaseFactoryPheew前面的新参数。就是这样。谢谢,先生!删除DatabaseFactoryPheew前面的新参数。就是这样。谢谢,先生!谢谢澄清!谢谢澄清!