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
类允许我绘制形状并将它们存储在arraylistConnection
中。然后我从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");
}
}
}