【问题标题】:Exposing Java Enums in the Rhino JavaScript engine在 Rhino JavaScript 引擎中公开 Java 枚举
【发布时间】:2014-06-06 01:43:16
【问题描述】:

我正在编写一个包含 Rhino 脚本引擎的程序。我想公开几个程序的枚举,但我不知道如何做到这一点,如果可能的话。有没有办法让 java 枚举在脚本中可用?

【问题讨论】:

  • 我怀疑这个问题的答案是“是”,但我需要更多信息才能确定。 1.“枚举”我假设你的意思是 java.lang.Enum 子类,换句话说,用 enum 关键字声明的东西? 2. “暴露”他们是什么意思?您希望脚本看到什么,以及您希望脚本能够对枚举做什么?

标签: java javascript scripting enums rhino


【解决方案1】:

您的意思是使用脚本中的 java 枚举,它将被 Rhino 转换为 Java?如果是这种情况,您可以执行以下操作:

  • 给定一个带有枚举的 java 类:

    package com.stackoverflow.example;
    public class Order {
    
        private String field;
        private By by;
    
        public enum By {
            ASC, DESC
        }
    
        public Order(String field, By by) {
            this.field = field;
            this.by = by;
        }
    }
    
  • 在脚本中你可以做

    // Importing class with enum
    importClass(Packages.com.stackoverflow.example.Order);
    
    // Instancing a new Order object using the existing enum in the Order class
    var order = new Order("db_field", Order.By.DESC);
    

我希望它有所帮助。

【讨论】:

    猜你喜欢
    • 2018-10-25
    • 1970-01-01
    • 1970-01-01
    • 2015-11-03
    • 2015-07-17
    • 2011-01-30
    • 1970-01-01
    • 1970-01-01
    • 2011-04-15
    相关资源
    最近更新 更多