Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 工厂模式使用接口。获得;找不到符号“;_Java - Fatal编程技术网

Java 工厂模式使用接口。获得;找不到符号“;

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

我遵循教程,试图创建自己的Factory模式类。这就是我得到的(最小化):

编译此代码时,我从编译器获得以下错误消息:

选择JAVA工具选项:-javaagent:/usr/share/JAVA/jayatanaag.jar

Db.java:66:错误:找不到符号 Database d=newdatabasefactory.init(1,“localhost”,3306,“db”

符号:类init^

位置:类数据库工厂

1错误

我不知道我做错了什么,以及如何解决这个问题。提前感谢!

您在DatabaseFactory类中将“init”方法声明为静态

除掉新接线员

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前面的新参数。就是这样。谢谢,先生!谢谢澄清!谢谢澄清!