簡體   English   中英

當類擴展Java中的另一個類時,在main方法中傳遞參數

[英]Pass argument in main method when class extends another class in Java

我正在嘗試為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);
 }  

您沒有從命令行在主方法中放入任何參數。 你應該寫類似

javac -cp asterisk-java.jar par1, par2

但是,首先,您應該定義哪個參數應該是您的內部參數,例如

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

這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM