嗯,完全天真的尝试:

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解决决策表相关推荐

  1. java安装_使用Java 9模块化来发布零依赖本机应用程序

    java安装 为什么我不能仅构建一个.EXE? 首次引入Java时,主流编程语言大多要么编译成独立的可执行文件(例如C / C ++,COBOL),要么在解释器中运行(例如Perl,Tcl). 对于许 ...

  2. java拯救公主_广度优先搜索解决“营救公主”问题

    在之前的一篇文章(迷宫营救公主算法)中提供了一个半成品的解决方案,之所以说他是半成品,是因为首先选择的算法就不对,采用的是深度优先搜索,其次也没有真正的用对深度优先算法,走过的点应该标记为已经走过,而 ...

  3. java掌握_掌握Java 11的Constantdynamic

    java掌握 为了使JVM对动态语言更具吸引力,该平台的第七版已将invokedynamic引入了其指令集. Java开发人员通常不会注意到此功能,因为该功能已隐藏在Java字节码中. 简而言之,通过 ...

  4. java书籍_学习Java最好的10本书,从入门到精通

    在当代,学习Java等编程课程的主要方式是视频资源,如果你想学,在网上五分钟之内就可以找到一堆学习视频,瞬间将你的硬盘填满.但是这些课程质量良莠不齐,对于小白来说很难辨别好坏. 但是书籍不同,书籍都是 ...

  5. java常见_关于Java的常见误解

    java常见 Java是世界上使用最广泛的语言(需要引用),每个人对此都有自己的见解. 由于它是主流,所以通常会嘲笑它,有时是对的,但有时批评并没有触及现实. 我将尝试解释我最喜欢的5个关于Java的 ...

  6. 易语言 java支持_开源Java客户端可以连接易语言服务器

    我们的服务端处理客户端的连接请求是同步进行的, 每次接收到来自客户端的连接请求后, 都要先跟当前的客户端通信完之后才能再处理下一个连接请求. 这在并发比较多的情况下会严重影响程序的性能, 为此,我们可 ...

  7. java 爬虫_探索Java 多线程爬虫及分布式爬虫架构

    在我们调试爬虫程序的时候,单线程爬虫没什么问题,但是当我们在线上环境使用单线程爬虫程序去采集网页时,单线程就暴露出了两个致命的问题: 采集效率特别慢,单线程之间都是串行的,下一个执行动作需要等上一个执 ...

  8. java 观察者模式_图解Java设计模式之观察者模式

    图解Java设计模式之观察者模式 天气预报项目需求 天气预报设计方案 1 - 普通方案 观察者模式(Observer)原理 观察者模式解决天气预报需求 观察者模式在JDK应用的源码分析 天气预报项目需 ...

  9. java 示例_最佳Java示例

    java 示例 什么是Java? (What is Java?) Java is a programming language developed by Sun Microsystems in 199 ...

最新文章

  1. 使用脑电图慢皮层电位重建3D空间中的手,肘和肩的实际和想象的轨迹
  2. 云计算产业被市场广泛看好 未来市场规模达4300亿元
  3. Special Judge Ⅲ(这道题考的就是出栈序列判定_关键代码不差什么)
  4. oracle误删数据的解决方法
  5. 如何做好性能压测丨压测环境设计和搭建
  6. h5 移动端 监听软键盘弹起、收起
  7. android焦点动画,Android编程中PopupWindow的用法分析【位置、动画、焦点】
  8. Redis常用命令总结,java开发流程面试
  9. SpringBoot解决XSS跨站脚本攻击
  10. 生物信息学研究生课程-1
  11. 为什么CU和DU要分离?
  12. winuser.h(10105,3): error C2059: 语法错误:“(”
  13. 《大厂面试》面试官看了直呼想要的简历
  14. OrangePIPC2---bootrom
  15. python进阶——AI视觉实现口罩检测实时语音报警系统
  16. 【ChatGPT4】王老师零基础《NLP》(自然语言处理)第二课
  17. 基于SSM的企业OA办公系统
  18. linux系统调用创建无名管道,linux 无名管道pipe和有名管道FIFO
  19. 浅谈IT企业挑选技术人员招聘几个要点
  20. 家庭理财期末考试试卷计算机,计算机科学与技术 家庭理财管理信息系统本科学位论文.doc...

热门文章

  1. 简单3步成功给Mac安装指定Python版本和指定库版本并且随意切换版本,非常简单,不行拿砖砸我
  2. Links about 技术大牛Joseph Yiu ...姚文祥(Joseph Yiu)
  3. 微博2021年营收22.6亿美元同比增34% 日活用户达2.49亿
  4. 水涨船高!造车新势力平均月薪15367元,自动驾驶算法岗年薪可达百万
  5. 一加9R将推12+256GB新版本:骁龙870+120Hz高刷屏
  6. 超60万人抢购!魅族这波营销火了
  7. 滴滴回应上班高峰期大范围崩溃 :系统异常 订单差额部分统一退还
  8. 小米11渲染图曝光:屏下摄像头技术现身还有方形5摄相机模组
  9. 神州租车:陆正耀辞任公司董事会主席及非执行董事职务
  10. 阔别七载,阿里港交所这对“初恋”再牵手