Java 调用一个类的方法以使用另一个类的实例
我对Java多少有些陌生。 我的意图是将一个类的方法“导出”到另一个类中(使所有处理一个实例的方法都有一个整洁的结构)。我的问题是,我无法在当前重载类的实例和我放入另一个类中的其他方法之间建立必要的连接 到目前为止,我已经启动了我的类Java 调用一个类的方法以使用另一个类的实例,java,Java,我对Java多少有些陌生。 我的意图是将一个类的方法“导出”到另一个类中(使所有处理一个实例的方法都有一个整洁的结构)。我的问题是,我无法在当前重载类的实例和我放入另一个类中的其他方法之间建立必要的连接 到目前为止,我已经启动了我的类Graph的一个实例,并将仅用于获取该实例值的方法放入读物中。 由于我无法计算出我在类中启动的读物的多少和实例,因此在图形中创建了一个方法,在读物中调用一个方法。 到目前为止,一切都很好(我假设),但问题是reads中的方法实际上不知道如何处理我的图的getter-
Graph
的一个实例,并将仅用于获取该实例值的方法放入读物中。
由于我无法计算出我在类中启动的读物的多少和实例,因此在图形中创建了一个方法,在读物中调用一个方法。
到目前为止,一切都很好(我假设),但问题是reads
中的方法实际上不知道如何处理我的图的getter
-Instance/在哪里访问getter
static Graph graphToBeWorkedOn;
在阅读
课程中,没有真正的帮助,我得到的只是一个空指针
提前感谢您的建议/帮助
编辑:
图形
:
...
Readings readingsVariable = new Reading();
...
public List<SpecificNode> methodToBeCalled(int numberInput) {
List<SpecificNode> listOfMethod = new ArrayList<SpecificNode>();
listOfMethod = readingsVariable.methodOne(numberInput);
return listOfMethod;
}
在测试主节点中初始化了图形
,并尝试调用
System.out.println(testGraph.methodOne(2));
从您提供的代码中,您永远不会初始化Graph对象
你需要这样做
public List<SpecificNode> methodOne(int numberInput) {
graphToBeWorkedOn = new Graph(); // Initialize Graph
List<SpecificNode> listOfMethod = new ArrayList<SpecificNode>();
...
// Now you can call the method
graphToBeWorkedOn.getSpecificNode(numberInput)
...
return listOfMethod;
}
公共列表方法一(整数输入){
graphToBeWorkedOn=新建图形();//初始化图形
List listOfMethod=new ArrayList();
...
//现在可以调用该方法了
graphToBeWorkedOn.getSpecificNode(numberInput)
...
返回方法列表;
}
简单解决方案:使用一个读取
构造函数,该构造函数将图形
对象作为参数,并使用它初始化图形
字段:
在图表中:
readingsVariable = new Reading(this);
阅读资料:
Readings(Graph graphToBeWorkedOn) {
this.graphToBeWorkedOn = graphToBeWorkedOn;
}
慢点类不是对象。您可以向对象而不是类发送消息(除非它们具有静态方法)。你能展示到目前为止你已经产生的代码吗?可能包括一些更多的代码,这样更容易看到你做了什么(以及什么可能是错误的)…argh忘记了-我在一个Test
-Main中初始化Graph
,并试图使用这样的方法:System.out.println(testGraph.methodOne(2))@grenth该过程调用的图形是一个实例变量,因此如果您从静态main方法实例化该图形,这将不会在Readings类中实例化该图形。但是在Readings中实例化一个新的图形不会达到获取我正在处理的图的值的目的?有没有一种简单的方法来链接实例化的图?我可以通过创建一个类来实例化一个图和读数,然后给这个新类提供任何方法/值,并尝试在那里处理输入来完成吗?
Readings(Graph graphToBeWorkedOn) {
this.graphToBeWorkedOn = graphToBeWorkedOn;
}