如何使 BlazeDS 名称转换适用于以小写字母开头、后跟大写字母的属性?
当 BlazeDS 对属性名称进行转换时,我遇到了一些问题,因为该名称以小写字母开头,后跟大写字母。
我有一个与此类似的 ActionScript 类:
package as.pkg {
[RemoteClass(alias="java.pkg.Example")]
public class Example {
private var mXRatio:Number;
public function get xRatio():Number {
return mXRatio;
}
public function set xRatio(r:Number):void {
mXRatio = r;
}
}
}
然后我在服务器上有等效的 Java 类:
package java.pkg;
public class Example {
private Double mXRatio;
public Double getXRatio() {
return mXRatio;
}
public void setXRatio( Double r ) {
mXRatio = r;
}
}
将实例从 ActionScript 发送到 Java 工作得很好。但是当实例从 Java 发送到 ActionScript 时,会显示以下错误:
ReferenceError:错误 #1056:无法在 as.pkg.Example 上创建属性 XRatio。
为什么 BlazeDS 不在那里转换 XRatio 的 X?我怎样才能避免这种情况?
I have some trouble with the conversion applied by BlazeDS to the name of the properties when this name begins with a lower-case letter followed by a capital letter.
I have an ActionScript class similar to this:
package as.pkg {
[RemoteClass(alias="java.pkg.Example")]
public class Example {
private var mXRatio:Number;
public function get xRatio():Number {
return mXRatio;
}
public function set xRatio(r:Number):void {
mXRatio = r;
}
}
}
Then I have the equivalent Java class on the server:
package java.pkg;
public class Example {
private Double mXRatio;
public Double getXRatio() {
return mXRatio;
}
public void setXRatio( Double r ) {
mXRatio = r;
}
}
Sending instances from ActionScript to Java works perfectly fine. But when the instances are sent from Java to ActionScript, the following error is displayed:
ReferenceError: Error #1056: Cannot create property XRatio on as.pkg.Example.
Why BlazeDS does not convert the X of XRatio there? How can I avoid this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
BlazeDS 在序列化时使用反射将值注入到属性中。
因此,您的属性(公共 getter/setter 对或公共变量)必须具有完全相同的名称,否则您将收到类似于上面描述的序列化错误。
试试这个,应该没问题:
干杯
BlazeDS uses reflection to inject values into your properties while serializing.
Therefore, your properties (public getter/setter pair or public variable) must have the exact same name or you will get serialization errors like the one you describe above.
Try this and it should be fine:
Cheers