java动态代码方案

2023-10-31

方案一:

https://vimsky.com/examples/detail/java-class-javax.script.Invocable.html
import javax.script.Invocable; //导入依赖的package包/类
public Object executeJs(String js,@Nullable String funcName,Object... args){
    ScriptEngineManager manager = new ScriptEngineManager();
    ScriptEngine engine = manager.getEngineByName("javascript");
    try {
        Object res=engine.eval(js);
        if(StringUtils.isNotBlank(funcName)){
            if (engine instanceof Invocable) {
                Invocable invoke = (Invocable) engine;
                res = invoke.invokeFunction(funcName, args);
            }
        }
        return res;
    } catch (Exception e) {
        log.error("",e);
    }
    return null;
}

方案二
https://www.jb51.net/article/209651.htm
1.导包

org.apache.commons commons-jexl3 3.2.1

2、demo实例

private String condition(){
	// 用于存储参数
	MapContext context = new MapContext();
	context.set("strA",1);
	context.set("strB",2);
	// 动态脚本(里面的参数都需要存储在context)
	String condition  = "strA <= strB ? \"yes\" : \" No\"";
	JexlExpression expression  = new Engine().createExpression(condition  );
	return expression .evaluate(context).toString();
}

@Test
private void test(){
String condition =  condition()System.out.println(condition);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java动态代码方案 的相关文章

随机推荐

  • 修复PHP扫描漏洞

    1 TLS 1 0 enabled 报告描述 修复方案 参考网站 https blog csdn net a1368783069 article details 85064682 如果使用chrome浏览器依次打开 右键 gt 审查 ins
  • python paramiko模块sftp异常:paramiko.ssh_exception.SSHException: EOF during negotiation

    python paramiko模块sftp异常 paramiko ssh exception SSHException EOF during negotiation 参考文章 1 python paramiko模块sftp异常 parami
  • 华为云DevCloud让软件开发更加高效智能, DevOps不止于美

    高速的中子撞击U235原子核 使其分裂成两个原子核 释放出巨大能量 同时产生的几个中子再去撞击其它原子核 形成链式反应 使得核裂变会无限的产生巨大的能量 将高速的中子比喻成人类的创新思想 原子核就是我们目前的业务 当创新思想碰撞当前业务 就
  • 矿 第三次数据结构实验

    问题 A 任意二叉树的层次遍历 题目描述 有若干个节点 每个节点上都有编号 把这些节点随意地构成二叉树 请编程输出该二叉树的层次遍历序列 输入 第一行是n n小于100 表示有n个节点 每个节点按从1到n依次编号 第一行后有n行 每行三个正
  • Burp Suite 功能介绍

    Target 获取目标应用程序的详细信息 Proxy Proxy是BurpSuite最核心的部分 通过拦截 查看和修改所有的请求和响应您的浏览器与目标Web服务器之间传递 Spider Burp Spider 能使你清楚地了解到一个 web
  • ps保存html和图像格式不显示,photoshop保存web格式不能显示该怎样解决

    在photoshop里面处理完图片保存有的时候会选择web格式 可是保存完了发现不能显示怎么解决 尝试了多次还没有找到解决方法的你 可以看看小编为你推荐的关于保存web格式不能显示的解决方法 想必会对你有帮助 photoshop保存web格
  • MySQL的安装配置

    在Windows系统上配置MySQL数据库 您可以按照以下步骤进行 下载安装MySQL 在官方网站上下载MySQL安装程序 并按照提示安装MySQL 建议下载最新版本的MySQL 以获取更好的性能和安全性 安装界面选择服务器端 设置MySQ
  • #pragma once 与 #ifndef...#define...#endif的比较

    C 中防止头文件被多次include 的常见方式有 用 ifndef define endif 宏 ifndef MYHEAD H define MYHEAD H Here is my class endif 这个是C 语言相关 这是C 语
  • WebFlux使用ServerHttpRequest出现找不到构造

    使用ServerHttpRequest异常 异常 java lang IllegalStateException No primary or single public constructor found for interface org
  • 掌握Python的X篇_35_用Python为美女打码_图像库Pillow

    本篇将会介绍python中的一个图像库Pillow 文章目录 1 Pillow与PIL的关系 2 调整大小 3 加滤镜 4 剪裁 5 生成验证码 1 Pillow与PIL的关系 我们在网上搜python的图像库的话 可能搜到的时PIL 实际
  • snipaste使用教程介绍

    snipaste是一个简单但强大的截图工具 但是很多用户下载之后都不知道怎么用 今天小编带来的内容就是snipaste使用方法教程 Win10纯净版 Win10 64位纯净版 Win10纯净精简版系统下载 系统部落 1 打开Snipaste
  • zynq开发,在SDK中自动生成的IP核驱动文件出现错误解决办法

    ZYNQ开发 在SDK中自动生成的IP核驱动文件出现错误解决办法 zynq开发 在SDK中出现IP驱动文件报错 寻找错误原因 对比 为什么出现这种情况 Block Design查看问题 最后 zynq开发 在SDK中出现IP驱动文件报错 报
  • STM32CUBEMX+FreeRTOS开发笔记3-----按键选择任务挂起

    按键初始化 和上次一样 复制上次的串口文件 改成keytask 打开cubemx工程 将PA3设置成中断线3模式 并将标签改为key1 使能中断线3 添加按键任务 生成代码即可 进入工程 查看中断线3函数 找到callback函数 因为中断
  • 《ESP32-Arduino》LVGL之输入设备详解及实例(触摸屏,实体按键,编码器,多功能按键)

    前言 好久没写博客了 一方面是平时着实没有时间 另一方面是知识还是欠缺 实在没啥技术拿得出手 其实更主要的还是懒 最近玩的比较多的就是LVGL了 自己也是做了几个小项目 后续考虑开源 考虑到网上LVGL入门教程还是比较少 特此出来写篇博客
  • Android移动开发-在Android项目里调用基于百度地图API实现定位

    基于地理位置服务的Android平台的开发对Android移动开发来说是非常重要的 基于地理位置服务的Android平台的开发是主要用于Android系统作为载体 我们可以利用定位出的位置进行许多丰富多彩的操作 比如说天气预报程序可以根据用
  • 【精华】AIGC专栏-Text/Img/Video/audio

    一 LLM专栏 大模型相关技术原理以及实战经验 liguodongiot llm action 1 ColossalAI 1 参考资料 700 亿参数 LLaMA2 训练加速 195 基础大模型最佳实践再升级 2 开源地址 https gi
  • 单片机晶振上两个电容的作用

    这两个电容叫晶振的负载电容 分别接在晶振的两个脚上和对地的电容 一般在几十皮发 它会影响到晶振的谐振频率和输出幅度 一般订购晶振时候供货方会问你负载电容是多少 晶振的负载电容 Cd Cg Cd Cg Cic C式中Cd Cg为分别接在晶振的
  • Qt无法解析的外部命令

    程序编译没有问题 上传svn后 下载整个项目后 编译错误 提示多个无法解析的外部的命令 检查的要点 程序的编译环境是否正确 程序需要的库的路径是否正确 查看库的路径是否正确时 需要查看 pro文件 但是上传svn时这些文件的内容肯定是一样的
  • 跑了这么久,汽车后市场电商终于快分出胜负了?

    图片来自网络 文 魏启扬 来源 智能相对论 ID aixdlun 汽车后市场电商是蓝海 也是火海 2015年前后 一大批创业者以互联网创新的方式闯入汽车后市场赛道 随便例举几个名字 博湃养车 E洗车 i保养 是不是都有些眼熟 其中有一些没啥
  • java动态代码方案

    方案一 https vimsky com examples detail java class javax script Invocable html import javax script Invocable 导入依赖的package包