资源简介
此公式解析系统能够计算各种算术运算、逻辑运算和比较运算,可以连接本地函数,支持括号分级,允许逐级设置公式内临时变量,提供了分支运算符,并且支持 Json 数据格式的运算。系统编写中使用了很多设计方法,包括概念抽取、继承、多态、面向接口设计、枚举、递归、工厂等等。数据结构也使用了好用但少见的双端队列。很适合对应情况的实用以及学习 Java 的设计思路、编程方式。本程序由 Shane Loo LI 设计和编写,所有的细节都注重了运行效率,在很多细节上都制作了数倍优于爪哇(Java)系统类库的方法;由于只需要处理公式,所以语法树结构单一,也因此保证了比现有其它注入语言的代码解释器更高的执行速度。
详细使用方法参看:
http://blog.csdn.net/shanelooli/article/details/8142726
代码片段和文件信息
/**
* 公式解析系统
* Dataobject.java independently from 2012-4-8 上午03:11:18
* ---------- ---------- ---------- ----------
* Copyright(c) 2012-2022 Spads
* E-mail: Surmounting@gmail.com
* ---------- ---------- ---------- ----------
* 公式解析系统能够计算各种算术运算、逻辑运算和比较运算,可以连接本地函数,支持括号
* 分级,允许逐级设置公式内临时变量,提供了分支运算符,并且支持 Json 数据格式的运算。
*/
package cn.spads.wogs.data.sys;
import java.util.Map;
import cn.spads.wogs.lang.JsonBuilder;
/**
* 数据对象接口
* 本接口用以描述每日限免精选中的数据对象。最终数据将通过 {@link Map}<{@link String}
* {@link object}> 来表现。在实用过程中,数据对象将用于直接将数据内容通过
* {@link JsonBuilder} 来生成 Json 字符串。此接口主要用于通过程序逐渐将生成、获取的
* 数据记录进来;在一般的实现中,此接口规定的方法对数据的取出很难做到好的支持。
* 一般来说,我们可以按照 Java Bean 的规范制作数据保存对象,比如:
*
* public class Person
* {
* private String name;
* public void setName(String name) { this.name = name; }
* public String getName() { return this.name; }
* }
*
* 然后在此基础上实现 Dataobject 接口:
*
* public class Person extends Dataobject
* {
* private String name;
* public void setName(String name) { this.name = name; }
* public String getName() { return this.name; }
* public Mapject> getDataMap()
* {
* Mapject> data = new java.util.HashMapject>();
* data.put(“name“ this.name);
* return data;
* }
* public void setData(String key object value)
* {
* if (“name“.equals(key)) this.setName(value.toString();
* }
* public object getData(String key)
* {
* if (“name“.equals(key)) return this.getName();
* return null;
* }
* }
*
* 这样的好处是数据存储对象可以根据实用情况,来决定将耗时过程集中在
* {@link #getDataMap()} 里,还是通过制作私有 Map
成员变量以分散在
* 每一次具体数据项的写入中。通过此例我们也可以看出,由于无法根据 key
* 的内容转变getData(String key)
方法返回值的类型,所以不得不引入
* 类型强制转换。这将给程序的健壮性造成非常大的隐患。所以郑重推荐程序内部通过传统
* 的 getter 和 setter 方式记录、获取数据。
*
* @author Shane Loo Li
* @version 1.1.0 2012-4-8 Sunday
* @see JsonBuilder#buildJson(object)
* @since Java 6.0
*/
public interface Dataobject
{
/**
* 获取数据集映射。本方法不限定返回的数据集映射之来源,但要求通过
* {@link #setData(String object)} 记录的数据应包含在此映射中。另外对于无
* 数据项的情况,应返回空的 Map
而不是 null
。
* @return 数据集映射
*/
abstract public Mapject> getDataMap();
/**
* 注册数据。对于已存在键的重复写入,应覆盖掉原值。这意味着数据值必须能够接受
* null
。此方法并不要求一定有意义地实现,可以直接抛出
* {@link IllegalAccessException} 表明不可执行。
* @see #getDataMap()
* @param key 数据对象中各种数据的键,可以理解为唯一标识。
* @param value 数据值。
* @exception NullPointerException 如果 key == null 则抛出此异常。
*/
abstract public void setData(String key object value) throws IllegalAccessException;
/**
* 获取数据。以 {@link object} 方式获取数据。此方法并不要求一定有意义地实现,
* 可以直接抛出 {@link IllegalAccessException} 表明不可执行。
* @param key 数据对象中各种数据的键,可以理解为唯一标识。
* @return 指定键对应的数据
* @exception NullPointerException 如果 key == null 则抛出此异常。
*/
abstract public object getData(String key) throws IllegalAccessExcept
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2012-11-02 14:03 ex
文件 241 2012-10-11 10:11 ex
文件 393 2012-10-11 09:54 ex
目录 0 2012-11-02 14:03 ex
文件 25 2012-05-11 14:57 ex
文件 1014 2012-11-02 11:42 ex
文件 27745 2012-11-02 14:02 ex
文件 22419 2012-11-02 12:22 ex
目录 0 2012-11-02 14:03 ex
文件 231 2012-04-01 18:22 ex
目录 0 2012-11-02 14:02 ex
目录 0 2012-11-02 14:02 ex
目录 0 2012-11-02 14:03 ex
目录 0 2012-11-02 14:03 ex
文件 224277 2006-11-02 11:46 ex
文件 6654 2012-04-05 10:13 ex
文件 891148 2011-09-28 16:25 ex
目录 0 2012-11-02 14:03 ex
目录 0 2012-11-02 14:03 ex
目录 0 2012-11-02 14:03 ex
目录 0 2012-11-02 14:03 ex
目录 0 2012-11-02 14:03 ex
目录 0 2012-11-02 14:03 ex
文件 4319 2012-11-02 11:47 ex
文件 1724 2012-11-02 11:47 ex
目录 0 2012-11-02 14:03 ex
文件 9878 2012-11-02 11:47 ex
文件 3524 2012-11-02 11:47 ex
文件 1242 2012-11-02 11:47 ex
文件 1636 2012-11-02 11:47 ex
文件 16687 2012-11-02 11:47 ex
............此处省略85个文件信息
相关资源
- 以太帧的解析程序JAVA实现
- 基于android解析json数据天气app
- Java校招面试题库附答案与解析java篇
- 2019牛客网校招面试题库附答案与解析
- java从图片提取文字
- PDFBox-2.0.19 for .Net | c#用PDFBox解析PDF
- JavaWeb - Excel_Word2003_2007、上传、解析生
- poi解析jsp上传的excel文件并导入mysql支
- Android Vitamio的使用解析Part3
- Android中解析读取复杂word,excel,ppt等
- Android条形码解析扫描
- java版语义解析
- 牛客校招面试题附答案与解析全集.
- 基于mysql-android studio-web服务器实现简
- xbrl解析(java)
- Android请求服务器和解析数据
- C语言解析教程原书第4版美 凯利.pdf
- Java解析大数据量Excel,可解析1048576行
- Android 动态解析网络布局
- Android项目实战——手机安全卫士开发
- Android zxing扫一扫,集成了闪光灯,选
- Gml解析并显示Android
- poi解析excel
- java处理HJ212数据采集解析数据处理入
-
DOM4J jar包 xm
l解析 所有的dom4j-1.6 - Java深入解析 透析Java本质的36个话题
-
android 解析xm
l - 软件设计师历年真题全汇总软考2000上
- Android安全机制解析与应用实践.(吴倩
- JSON数据解析后显示在listview上并且可
评论
共有 条评论