java.lang.NullPointerException:在java中运行Groovy时无法调用方法
我第一次使用Groovy和Java,并且在运行我的简单主项目时不断出现异常 例外情况: 线程“main”java.lang.NullPointerException中出现异常:无法对null对象调用方法sell() 类应用程序Java: Groovy文件: 类别DSL:java.lang.NullPointerException:在java中运行Groovy时无法调用方法,java,groovy,Java,Groovy,我第一次使用Groovy和Java,并且在运行我的简单主项目时不断出现异常 例外情况: 线程“main”java.lang.NullPointerException中出现异常:无法对null对象调用方法sell() 类应用程序Java: Groovy文件: 类别DSL: 发现问题,TradeDsl buy,sell,from need to return TradeDsl在您的trades1文件中buy和sell都有两个数量,但您的DSL只为sell指定了一个数量(但为buy指定了两个)。您好,
发现问题,TradeDsl buy,sell,from need to return TradeDsl在您的
trades1
文件中buy
和sell
都有两个数量,但您的DSL只为sell
指定了一个数量(但为buy
指定了两个)。您好,谢谢这是一个问题,但不是导致NPE的问题,问题是TradeDsl购买、出售,从需要返回TradeDsl
public void start() throws CompilationFailedException, IOException {
File trades = uploadGroovyScript();
Binding binding = new Binding();
GroovyShell shell = new GroovyShell(binding);
shell.evaluate(trades);
TradeDsl tradeDsl = new TradeDsl();
Closure c = (Closure) binding.getVariable("trades1");
c.setDelegate(tradeDsl);
c.call();
}
trades1 = {
buy 100,200 from "MSFT"
buy 1000,200 from "APPL"
buy 500,200 from "VMW"
sell 50,200 from "MSFT"
buy 1200,200 from "MSFT"
sell 200,200 from "VMW"
buy 1200,200 from "APPL"
}
public void buy(int quantity1 , int quantity2) {
System.out.println("Buying " + quantity1 + " or " + quantity2);
}
public void sell(int quantity1) {
System.out.println("Selling " + quantity1);
}
public void from(String epic) {
System.out.println("from " + epic);
}