首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当类在Java中扩展另一个类时,在main方法中传递参数

当类在Java中扩展另一个类时,在main方法中传递参数
EN

Stack Overflow用户
提问于 2019-04-22 14:51:34
回答 2查看 181关注 0票数 0

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

代码语言:javascript
复制
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

我得到了这个错误:

代码语言:javascript
复制
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方法的实例?

EN

回答 2

Stack Overflow用户

发布于 2019-04-22 14:56:01

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

与您的示例一样,requestchannel变量都没有创建。这就是你得到error Can't find symbol的原因

你的main方法应该是这样的:

代码语言:javascript
复制
public static void main (String[] args) 
{
    HelloAgiScript asteriskService = new HelloAgiScript();
    AgiRequest request = new AgiRequest();
    AgiChannel channel = new AgiChannel();
    asteriskService.service(request, channel);
 }  
票数 2
EN

Stack Overflow用户

发布于 2019-04-22 14:59:43

您没有从命令行将任何参数放入main方法中。您应该编写类似这样的代码

代码语言:javascript
复制
javac -cp asterisk-java.jar par1, par2

但是,首先应该定义哪个参数应该是您的内部参数,如下所示

代码语言:javascript
复制
public static void main (String[] args) 
{
    HelloAgiScript asteriskService = new HelloAgiScript();
    AgiRequest request = args[0];
    AgiChannel channel = args[1];
    asteriskService.service(request, channel);
 } 

Look here

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55790303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档