如何 运行 来自另一个 class 的 class
How to run a class from another class
我有一个 class erdbuilder
和另一个 class SQL
。我的 erdbuilder
class 允许我绘制形状并将它们存储在数组列表 Connection
中。然后我从 SQL
class 访问数组列表 Connection
,我将从数组列表中检索数据。我在 erdbuilder
class
中有一个主要 class
我想运行 SQL
class 从 erdbuilder
class
我有这个来访问我的 SQL
class 但我不确定这是否是正确的方法。
这是我从 erdbuilder
class[=30= 调用 SQL
class 的部分代码]
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();
}
这是我的 SQL
class.
package project;
import java.awt.Shape;
import java.util.ArrayList;
import project.ERDBUILDER.DrawingBoard.Attribute;
import project.ERDBUILDER.DrawingBoard.Connection;
import project.ERDBUILDER.DrawingBoard.NamedShape;
public class SQL {
public void display() {
ArrayList<Connection> con = new ArrayList<>();
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");
}
}
}
实际上当我 运行 erdbuilder
class 时,它并没有调用 sql
class。怎么了?谁能帮我解决这个问题?
这个问题很模糊,因为没有 "running" 和 class 的概念。我不确定你的意思 "when I run the erdbuilder class, it's not calling the sql class"。你到底是什么人 运行?
从 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 对象并从 erdbuilder 传递列表。
SQL sql = new SQL( con );
sql.display();
这取决于 SQL 的其他方法也需要访问此列表。否则将它作为参数传递只是为了显示可能更可取。
在 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);
}
...
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");
}
}
}
我有一个 class erdbuilder
和另一个 class SQL
。我的 erdbuilder
class 允许我绘制形状并将它们存储在数组列表 Connection
中。然后我从 SQL
class 访问数组列表 Connection
,我将从数组列表中检索数据。我在 erdbuilder
class
我想运行 SQL
class 从 erdbuilder
class
我有这个来访问我的 SQL
class 但我不确定这是否是正确的方法。
这是我从 erdbuilder
class[=30= 调用 SQL
class 的部分代码]
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();
}
这是我的 SQL
class.
package project;
import java.awt.Shape;
import java.util.ArrayList;
import project.ERDBUILDER.DrawingBoard.Attribute;
import project.ERDBUILDER.DrawingBoard.Connection;
import project.ERDBUILDER.DrawingBoard.NamedShape;
public class SQL {
public void display() {
ArrayList<Connection> con = new ArrayList<>();
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");
}
}
}
实际上当我 运行 erdbuilder
class 时,它并没有调用 sql
class。怎么了?谁能帮我解决这个问题?
这个问题很模糊,因为没有 "running" 和 class 的概念。我不确定你的意思 "when I run the erdbuilder class, it's not calling the sql class"。你到底是什么人 运行?
从 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 对象并从 erdbuilder 传递列表。
SQL sql = new SQL( con );
sql.display();
这取决于 SQL 的其他方法也需要访问此列表。否则将它作为参数传递只是为了显示可能更可取。
在 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);
}
...
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");
}
}
}