有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何解析具有可变参数号的函数?

到目前为止,我的解析器能够使用如下表达式解析具有已知参数号的函数

<FUNCTION><OPENPAR> son=expression() <COMMA> son1=expression() <CLOSEPAR>

此外,还可以轻松处理可选参数

<FUNCTION><OPENPAR> son=expression() <COMMA> son1=expression() [<COMMA> son2=expression()] <CLOSEPAR>

但是,我还没有找到关于捕获未知数量参数的可能性的文档。我猜是这样的

<FUNCTION><OPENPAR> son=expression() <COMMA> son1=expression() [<COMMA> son2=expression()]+ <CLOSEPAR>

但在这种情况下,我不知道如何捕获这些多个参数

有什么想法或例子吗?(或者如果有人知道这是不可能的)


共 (1) 个答案

  1. # 1 楼答案

    假设至少需要一个参数。然后,您将需要以下内容:

    private X myFunction():
    {
      X result = new X();
    }
    {
    
      <FUNCTION>
        <OPENPAR> 
                      son=expression() { result.params.add(son); }
           (  <COMMA> son=expression() { result.params.add(son); } )*
        <CLOSEPAR>
        { return result; }
    }
    

    总而言之,我的方法是:

    1. 创建结果Java类X并像在普通Java中一样使用它
    2. 初始化开始时需要的内容
    3. 返回填充对象

    如果您仍然需要工作示例,您可能会发现this很有用