Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.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_Sql_Class_Arraylist_Erd - Fatal编程技术网

Java 如何从另一个类运行一个类

Java 如何从另一个类运行一个类,java,sql,class,arraylist,erd,Java,Sql,Class,Arraylist,Erd,我有一个类erdbuilder和另一个类SQL。我的erdbuilder类允许我绘制形状并将它们存储在arraylistConnection中。然后我从SQL类访问arraylist连接,我将从arraylist中检索数据。我在erdbuilder类中有一个主类 我想从erdbuilder类运行SQL类 我可以用这个来访问我的SQL类,但不确定这样做是否正确 这里是我的代码的一部分,用于从erdbuilder类调用SQL类 if ((rect != null) && (ell !

我有一个类
erdbuilder
和另一个类
SQL
。我的
erdbuilder
类允许我绘制形状并将它们存储在arraylist
Connection
中。然后我从
SQL
类访问arraylist
连接
,我将从arraylist中检索数据。我在
erdbuilder
类中有一个主类

我想从
erdbuilder
类运行
SQL

我可以用这个来访问我的
SQL
类,但不确定这样做是否正确

这里是我的代码的一部分,用于从
erdbuilder
类调用
SQL

if ((rect != null) && (ell != null)) {
con.add(new Connection(rect,ell));
System.out.println("Size of ArrayList <Connection> is:" + con.size());                                   
                                SQL sql = new SQL();
                                sql.display();                                                                      
                            }

实际上,当我运行
erdbuilder
类时,它并没有调用
sql
类。怎么了?有人能帮我解决这个问题吗?

这个问题很模糊,因为没有“运行”类的概念。我不知道你说的“当我运行erdbuilder类时,它没有调用sql类”是什么意思。你到底在跑什么


从erdbuilder的代码片段中,您确实正在创建
SQL
的实例并调用其
display
方法。然而,一件看起来非常奇怪的事情是,在
display
中,您正在创建一个新的连接空列表,然后遍历它,期望找到一些元素。此列表是新创建的,并且始终为空,因此代码实际上不会执行任何操作。似乎您打算将在erdbuilder中创建的列表作为参数传递到
display
方法中…?

这个问题相当模糊,因为没有“运行”类的概念。我不知道你说的“当我运行erdbuilder类时,它没有调用sql类”是什么意思。你到底在跑什么


从erdbuilder的代码片段中,您确实正在创建
SQL
的实例并调用其
display
方法。然而,一件看起来非常奇怪的事情是,在
display
中,您正在创建一个新的连接空列表,然后遍历它,期望找到一些元素。此列表是新创建的,并且始终为空,因此代码实际上不会执行任何操作。似乎您打算将在erdbuilder中创建的列表作为参数传递到
display
方法中…?

您必须将列表传递到SQL中:

public class SQL {    
    private List<Connection> con;
    public SQL( List<Connection> con ){
        this.con = con;
    }
    public void display() {
        // ArrayList<Connection> con = new ArrayList<>();

这取决于需要访问此列表的其他SQL als方法。否则,最好将其作为参数传递以便显示。

必须将列表传递到SQL中:

public class SQL {    
    private List<Connection> con;
    public SQL( List<Connection> con ){
        this.con = con;
    }
    public void display() {
        // ArrayList<Connection> con = new ArrayList<>();
这取决于需要访问此列表的其他SQL als方法。否则,最好将其作为参数传递以显示。

display()
中,您正在一个空列表上迭代。将方法更改为接受List类型的参数,然后在调用它时,传递
con
(您的ArrayList)

以下是按说明编辑的代码段:

if ((rect != null) && (ell != null)) {
con.add(new Connection(rect,ell));
System.out.println("Size of ArrayList <Connection> is:" + con.size());                                   
                            SQL sql = new SQL();
                            sql.display(con);                                                                      
                        }
if((rect!=null)和&(ell!=null)){
con.add(新连接(rect,ell));
System.out.println(“ArrayList的大小为:“+con.Size()”);
SQL=新SQL();
sql.display(con);
}

成套工程;
导入java.awt.Shape;
导入java.util.List;
导入project.ERDBUILDER.DrawingBoard.Attribute;
导入project.ERDBUILDER.DrawingBoard.Connection;
导入project.ERDBUILDER.DrawingBoard.NamedShape;
公共类SQL{
公共无效显示(列表con){
对于(int a=0;a
display()
中,您正在迭代一个空列表。将方法更改为接受List类型的参数,然后在调用它时,传递
con
(您的ArrayList)

以下是按说明编辑的代码段:

if ((rect != null) && (ell != null)) {
con.add(new Connection(rect,ell));
System.out.println("Size of ArrayList <Connection> is:" + con.size());                                   
                            SQL sql = new SQL();
                            sql.display(con);                                                                      
                        }
if((rect!=null)和&(ell!=null)){
con.add(新连接(rect,ell));
System.out.println(“ArrayList的大小为:“+con.Size()”);
SQL=新SQL();
sql.display(con);
}

成套工程;
导入java.awt.Shape;
导入java.util.List;
导入project.ERDBUILDER.DrawingBoard.Attribute;
导入project.ERDBUILDER.DrawingBoard.Connection;
导入project.ERDBUILDER.DrawingBoard.NamedShape;
公共类SQL{
公共无效显示(列表con){
对于(int a=0;a
您是否应该通过ArrayList con=new ArrayList();(重新)在SQL.display()中声明数组列表;?con似乎是在SQL类范围之外创建的现有数组列表,这意味着它应该是要显示的参数,而不是新声明为局部变量。它正在运行。但是当您运行它时,
con
是一个新创建的数组列表,所以我
package project;
import java.awt.Shape;
import java.util.List;
import project.ERDBUILDER.DrawingBoard.Attribute;
import project.ERDBUILDER.DrawingBoard.Connection;
import project.ERDBUILDER.DrawingBoard.NamedShape;


public class SQL {    

public void display(List<Connection> con) {

    for (int a = 0; a < con.size(); a++) {
                                NamedShape f = con.get(a).getNamedShape1();
                                Attribute g = con.get(a).getNamedShape2();
                                String i = f.getName();
                                String j = g.getName();

                                Shape y = f.getShape();
                                Shape y1 = g.getShape();
                                System.out.println(i + " AND " + j + " are linked");

}



}
}