资源简介
此公式解析系统能够计算各种算术运算、逻辑运算和比较运算,可以连接本地函数,支持括号分级,允许逐级设置公式内临时变量,提供了分支运算符,并且支持 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期末考试试题两套(答案) 选择(
- java 局域网数据包嗅探
- Java String的intern用法解析
- 相似度计算公式皮尔森pearson和余弦的
- 解析身份证省市代码.zip
- 疯狂JAVA讲义课后习题解析
- JavaWeb中文件上传最强工具类
-
java心电图xm
l解析.zip - Java解析apk/ipa读取包名、版本名、版本
- 牛客网校招面试题库附答案与解析j
- java开发校招面试题库附答案与解析
- Android项目源码星座解析今日运势查询
- AST解析java源文件相关jar包
- Android源码Telephony 框架设计解析
- android 解析html页面并图片
- Android Http URL Connection获取数据并JSON解
- Android 3D滑动菜单完全解析,实现推拉
- 解析apk所需jar包
- android 解析html htmlParser库和源码
- json解析需要的jar包
- SNMP PDU报文解析JAVA实现
- Android解析http常见数据格式的代码
- android notification完全解析Demo
- android平台libgdx 解析obj文件
- ab文件解析工具abe
- java解析ASN.1文件的和简要使用说明
- Android JSON数据格式解析_客户端
- JSON数据格式解析_服务端
- Android显示数学公式MathJax
- 加入数据库mysql实现android注册登陆功
评论
共有 条评论