gpt4 book ai didi

java - 当类扩展 Java 中的另一个类时在主方法中传递参数

转载 作者:行者123 更新时间:2023-12-02 09:58:45 24 4
gpt4 key购买 nike

我正在尝试运行 asterisk-java 的脚本,如下所示。我添加了一个 main 方法并调用其中的 service 方法,如下所示:

import org.asteriskjava.fastagi.AgiChannel;
import org.asteriskjava.fastagi.AgiException;
import org.asteriskjava.fastagi.AgiRequest;
import org.asteriskjava.fastagi.BaseAgiScript;

public class HelloAgiScript extends BaseAgiScript
{
public void service(AgiRequest request, AgiChannel channel)
throws AgiException
{
// Answer the channel...
answer();

// ...say hello...
streamFile("welcome");

// ...and hangup.
hangup();
}

public static void main (String[] args)
{
HelloAgiScript asteriskService = new HelloAgiScript();
asteriskService.service(request, channel);
}
}

当我尝试使用以下命令编译它时:

javac -cp asterisk-java.jar HelloAgiScript.java

我收到此错误:

HelloAgiScript.java:24: error: cannot find symbol
asteriskService.service(request, channel);
^
symbol: variable request
location: class HelloAgiScript
HelloAgiScript.java:24: error: channel has private access in AgiOperations
asteriskService.service(request, channel);
^
2 errors

如何将参数传递给 main 方法内的 service 方法的实例?

最佳答案

您需要将参数作为 AgiRequestAgiChannel 类的对象传递给 service() 方法调用。

就像您的情况一样,requestchannel 变量都没有创建。这就是为什么您收到错误 Can't find symbol

你的主要方法应该是这样的:

public static void main (String[] args) 
{
HelloAgiScript asteriskService = new HelloAgiScript();
AgiRequest request = new AgiRequest();
AgiChannel channel = new AgiChannel();
asteriskService.service(request, channel);
}

关于java - 当类扩展 Java 中的另一个类时在主方法中传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55790303/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com