java决策_机Java解决决策表
嗯,完全天真的尝试:
public interface Condition {
public boolean process(T object);
}
ArrayList row = new ArrayList(10);
row.add(new Condition() {
public boolean process(YourObject obj) {
if (obj.property > 0) return true;
else return false;
});
row.add(new Condition() {
public boolean process(YourObject obj) {
if (obj.property2 == 100) return true;
else return false;
});
,那么你会遍历:
for (Condition cond : row) {
if (! cond.process(yourobj)) break;
}
一个稍微复杂的例子,你可以写你的决定表中的javascript很多更简洁,也许使用Beanshell来执行逻辑。在我可以发布你的例子之前,我将不得不击中一下这个外壳。
,或者它可能的,如果你发布了一个例子有人能想出一些简单的Scala程序做你想要什么。
编辑:
所以我做了一些研究和思考,并为您的BeanShell可以使用像这样:
import bsh.Interpreter;
Interpreter i = new Interpreter(); // Construct an interpreter
YourObject yourObject = new YourObject();
i.set("myObject", yourObject);
// Source an external script file
i.source("somefile.bsh");
而且somefile.bsh可能是这样的:
var rules = new Array();
rules.push(function(var) {
if (var.getProperty() == 0) return true;
else return false;
});
rules.push(function(var) {
if (var.getProperty() < 1000) return true;
else return false;
});
... more rules ...
for (var func in rules) {
if (!func(myObject)) break;
}
这会给你更多的灵活性来改变规则,而不是重新编译Java源代码。
你将不得不另一个阵列添加到这些解决方案,让您的100源“行”
java决策_机Java解决决策表相关推荐
- java安装_使用Java 9模块化来发布零依赖本机应用程序
java安装 为什么我不能仅构建一个.EXE? 首次引入Java时,主流编程语言大多要么编译成独立的可执行文件(例如C / C ++,COBOL),要么在解释器中运行(例如Perl,Tcl). 对于许 ...
- java拯救公主_广度优先搜索解决“营救公主”问题
在之前的一篇文章(迷宫营救公主算法)中提供了一个半成品的解决方案,之所以说他是半成品,是因为首先选择的算法就不对,采用的是深度优先搜索,其次也没有真正的用对深度优先算法,走过的点应该标记为已经走过,而 ...
- java掌握_掌握Java 11的Constantdynamic
java掌握 为了使JVM对动态语言更具吸引力,该平台的第七版已将invokedynamic引入了其指令集. Java开发人员通常不会注意到此功能,因为该功能已隐藏在Java字节码中. 简而言之,通过 ...
- java书籍_学习Java最好的10本书,从入门到精通
在当代,学习Java等编程课程的主要方式是视频资源,如果你想学,在网上五分钟之内就可以找到一堆学习视频,瞬间将你的硬盘填满.但是这些课程质量良莠不齐,对于小白来说很难辨别好坏. 但是书籍不同,书籍都是 ...
- java常见_关于Java的常见误解
java常见 Java是世界上使用最广泛的语言(需要引用),每个人对此都有自己的见解. 由于它是主流,所以通常会嘲笑它,有时是对的,但有时批评并没有触及现实. 我将尝试解释我最喜欢的5个关于Java的 ...
- 易语言 java支持_开源Java客户端可以连接易语言服务器
我们的服务端处理客户端的连接请求是同步进行的, 每次接收到来自客户端的连接请求后, 都要先跟当前的客户端通信完之后才能再处理下一个连接请求. 这在并发比较多的情况下会严重影响程序的性能, 为此,我们可 ...
- java 爬虫_探索Java 多线程爬虫及分布式爬虫架构
在我们调试爬虫程序的时候,单线程爬虫没什么问题,但是当我们在线上环境使用单线程爬虫程序去采集网页时,单线程就暴露出了两个致命的问题: 采集效率特别慢,单线程之间都是串行的,下一个执行动作需要等上一个执 ...
- java 观察者模式_图解Java设计模式之观察者模式
图解Java设计模式之观察者模式 天气预报项目需求 天气预报设计方案 1 - 普通方案 观察者模式(Observer)原理 观察者模式解决天气预报需求 观察者模式在JDK应用的源码分析 天气预报项目需 ...
- java 示例_最佳Java示例
java 示例 什么是Java? (What is Java?) Java is a programming language developed by Sun Microsystems in 199 ...
最新文章
- 使用脑电图慢皮层电位重建3D空间中的手,肘和肩的实际和想象的轨迹
- 云计算产业被市场广泛看好 未来市场规模达4300亿元
- Special Judge Ⅲ(这道题考的就是出栈序列判定_关键代码不差什么)
- oracle误删数据的解决方法
- 如何做好性能压测丨压测环境设计和搭建
- h5 移动端 监听软键盘弹起、收起
- android焦点动画,Android编程中PopupWindow的用法分析【位置、动画、焦点】
- Redis常用命令总结,java开发流程面试
- SpringBoot解决XSS跨站脚本攻击
- 生物信息学研究生课程-1
- 为什么CU和DU要分离?
- winuser.h(10105,3): error C2059: 语法错误:“(”
- 《大厂面试》面试官看了直呼想要的简历
- OrangePIPC2---bootrom
- python进阶——AI视觉实现口罩检测实时语音报警系统
- 【ChatGPT4】王老师零基础《NLP》(自然语言处理)第二课
- 基于SSM的企业OA办公系统
- linux系统调用创建无名管道,linux 无名管道pipe和有名管道FIFO
- 浅谈IT企业挑选技术人员招聘几个要点
- 家庭理财期末考试试卷计算机,计算机科学与技术 家庭理财管理信息系统本科学位论文.doc...
热门文章
- 简单3步成功给Mac安装指定Python版本和指定库版本并且随意切换版本,非常简单,不行拿砖砸我
- Links about 技术大牛Joseph Yiu ...姚文祥(Joseph Yiu)
- 微博2021年营收22.6亿美元同比增34% 日活用户达2.49亿
- 水涨船高!造车新势力平均月薪15367元,自动驾驶算法岗年薪可达百万
- 一加9R将推12+256GB新版本:骁龙870+120Hz高刷屏
- 超60万人抢购!魅族这波营销火了
- 滴滴回应上班高峰期大范围崩溃 :系统异常 订单差额部分统一退还
- 小米11渲染图曝光:屏下摄像头技术现身还有方形5摄相机模组
- 神州租车:陆正耀辞任公司董事会主席及非执行董事职务
- 阔别七载,阿里港交所这对“初恋”再牵手