Comments (4)
这里这个如果要支持表达式那就要引入ognl包,感觉为了这个不值得引入另一个包。
所以我想的是有两种方案:
- 设置一个属性,可以将类的order设置为全局,这样就可以取到了
- 可以为每类设置一个基准order值,这样也可以访问到其他bean的属性
from magic-byte.
确实,SPEL、OGNL、Groovy、JEXL、EL 这几种实现都需要引依赖。
我更倾向于第二种,感觉第一种会导致使用上混乱或者不灵活,不能配置多个。第二个的话,是不是这样实现,
@MagicClass
class A {
@MagicField(order = 1)
private int a;
@MagicField(order = 3)
private int length;
}
@MagicClass
class B {
@MagicField(order = 1)
private A a;
// 样式 1
@MagicField(order = 3, dynamicSizeof = 3, sizeFather = 1)
private byte[] data;
// 样式 2
@MagicField(order = 3, dynamicSizeof = 1.3)
private byte[] data;
}
from magic-byte.
现在已经实现并支持了。
废弃当前以orderrid作为引用,替换为以属性名为引用(支持相对引用和绝对引用)
可以直接以属性名引用当前同级或者下级所有属性,也支持以绝对引用(以根对象开始引用属性路径)
from magic-byte.
现在已经实现并支持了。
废弃当前以orderrid作为引用,替换为以属性名为引用(支持相对引用和绝对引用)
可以直接以属性名引用当前同级或者下级所有属性,也支持以绝对引用(以根对象开始引用属性路径)
旧的和新的使用方式是不是都存在比较好,否则这个对于已实现但想用新版本特性的代码改动量太大了吧
from magic-byte.
Related Issues (20)
- MConverter 的 unpack 接口希望能把要序列化的对象信息作为入参传入 HOT 3
- 希望可以自定义实现校验和且支持 byte[] 类型作为校验和数据类型 HOT 5
- dynamicSize 支持接口类 HOT 1
- dynamicSizof wiki 没更新 HOT 2
- 如果 dynamicsizeof 指向的属性名重名了,会导致序列化结果错误
- @MagicConverter 和 dynamicSize 没法共存 HOT 2
- 能否提供一个方法获取标记为 magicclass 的类的二进制数据长度 HOT 15
- @MagicConverter 的 attachParams 能否通过读取别的值获取参数 HOT 8
- 新增一个方法:返回读取的字节数和对象
- 自定义序列化传入的Object,应该传入根基对象 HOT 5
- 自定义序列化 unpack 方法希望传入根对象
- 异常栈无法看出报错位置 HOT 3
- byte[] 这种不定长类型如果配置了 custom 注解还检查是否指定长度 HOT 1
- BUG:作为属性的类的属性如果都使用了 @MagicConverter 将会导致反序列结果不正确 HOT 5
- BUG:子类继承父类的时候序列化结果为空数组 HOT 1
- 新版本没有发布到**仓库 HOT 1
- 框架序列化的数据能否自动补齐 HOT 8
- 嵌套 custom convert 的 rootObj 不是最顶层
- 功能增强:反序列化方法可以传入一个 customConvert 变量
- 二进制数据长度小于一个 MagicClass 所有属性的长度的时候,数据读取完了还会继续反序列化
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from magic-byte.