`
turingfellow
  • 浏览: 136220 次
  • 性别: Icon_minigender_1
  • 来自: 福建省莆田市
社区版块
存档分类
最新评论

setcontent和setcontentobject用的是同一片内存

    博客分类:
  • jade
 
阅读更多
setcontent 和 setcontentobject用的是同一片内存,也就是在同一个信息里只宜用一个方法,如果用了两个,第二个会重写第一个的内容,收到的会是一个乱码.
Ok I understand now. I didn t remarked that setContent and
setContentObject referred to the same slot.
Thanks a lot,

Emmanuel

Emilio Yamane a écrit :

> My comments after the ">>>":
>
> On 4/21/06, *blanchae at iro.umontreal.ca
> <mailto:blanchae at iro.umontreal.ca>* <blanchae at iro.umontreal.ca
> <mailto:blanchae at iro.umontreal.ca>> wrote:
>
>     A test I just did:
>
>     sendMessageAndObject(ACLMessage.AGREE,"MAP_DATA",new
>     String("ABCDEFGH"), msg.getSender());
>
>     and here is the message that is shown on my console (Corresponding
>     to the
>     following call inside my sendMessageAndObject method :
>     System.out.println(msg.getContent()+"  "+msg.getContentObject()); )
>
>     ¼? ?ABCDEFGH  ABCDEFGH
>
>     Sounds very very strange to me...
>     why "MAP_DATA" is not return by getContent?
>

> >>> Because in your method, you call setContent AND setContentObject.
> According to the model, they both would write to the same slot in ACL
> Message (:content).

> >>> After you set the content with "MAP_DATA", you call
> setContentObject and it "rewrites" the content with your String .

>
>     Where do the symbols come from?
>

> >>> Since you called setContentObject after setContent, your message
> carries a serialized java object (in a byte array). When you call
> getContent, it will try to build a String based on the byte array. As
> the byte array contains also information about the String class (and
> not just the String itself), the strange chars are explained.
>
>     Could it be a jade bug?
>

> >>> I took a look at the source code, and it seems OK.
>
>     Emmanuel
>

> >>> []s Emilio
>

分享到:
评论
1 楼 houruiming 2011-08-26  
tks for your info which helps me a lot.

相关推荐

    layui的layedit富文本赋值方法

    layedit.setContent(index, content, flag); flag是true,是追加模式, flag是false,赋值模式 以上这篇layui的layedit富文本赋值方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持...

    弹出可移动的层,有多种弹出方式

    pop.setContent("title","框架iframe示例"); pop.build(); pop.show(); } function ShowHtmlString() //显示html { var strHtml = "; text-align:center;'&gt;&lt;tr style='height:40px'&gt;&lt;td&gt;ds&lt;/td&gt;&lt;td&gt;dads&lt;/td&gt;...

    MapBar的Api使用简略说明(上)

    MapBar API 使用简略说明(上) MapBar是一款知名的在线地图服务提供商,为开发者提供了丰富的API接口,使得我们可以轻松地在自己的应用或者网站中集成地图功能。本文将对MapBar API的基本使用进行简略说明,主要...

    DOM方式解析XML.pdf

    在QT中,可以使用DOM方式解析XML文档,将XML文档读入内存,构建为DOM树,并通过节点遍历的方式实现数据的存取和操作。 在DOM方式中,XML文档中的每个成分都是一个节点。例如,整个文档对应一个文档节点;每个XML...

    tinyMCE方法调用

    在使用tinyMCE时,我们常常需要对编辑器进行一些方法调用以实现特定的功能。以下是一些重要的tinyMCE方法及其应用: 1. 初始化编辑器:`tinyMCE.init()` 是启动tinyMCE编辑器的关键步骤,需要传入一个配置对象,该...

    android开发实例;xml解析;http下载文件;tabhost;

    HttpClient虽然被弃用,但在老版本系统中使用广泛。下载文件时,我们需要创建请求,设置URL,打开连接,获取输入流,然后将数据写入本地文件。 TabHost是Android中用于实现多标签页布局的组件。它允许你在同一个...

    fragmentTabgost的使用和优化

    5. **缓存和复用View**:尽量减少视图的创建和销毁,例如使用convertView在ListView中复用视图,或者在Fragment内部缓存一些不常变化的View。 6. **避免在Fragment内使用大型Bitmaps**:大型图像可能导致内存溢出。...

    Winform Html Editor 使用kindeditor组件实现winform Html 编辑器

    - 下载KindEditor的最新版本,包括其JavaScript库和所需的CSS文件。 2. **项目设置**: - 在Visual Studio中新建一个Windows Forms应用程序项目,命名为"WinformHTMLEditor"。 - 添加一个WebBrowser控件到Form上...

    QT访问XML文件

    1. **加载XML文件**:首先,我们需要使用`QFile`类打开XML文件,然后使用`QDomDocument`的`setContent()`或`load()`方法将文件内容加载到内存中,创建一个DOM树。 ```cpp QFile file("myxml.xml"); if (file.open...

    qt使用DOM和SAX两种方式读写XML文件,代码工程demo,亲测可用

    在IT领域,XML(eXtensible Markup Language)是一种被广泛使用的数据交换格式,它具有良好的结构化和可扩展性。在Qt框架中,处理XML文件是常见的需求,本项目提供了一个使用DOM(Document Object Model)和SAX...

    Fragment跟tabhost的结合使用

    在Android应用开发中,`Fragment`和`TabHost`的结合使用是构建多视图、交互丰富的用户界面的常见方式。`Fragment`是Android 3.0(API级别11)引入的一个组件,用于在大屏幕设备如平板电脑上更好地管理用户界面。而`...

    Android考试题库[定义].pdf

    8. 若要自定义`TabHost`标题,需要使用`setIndicator`方法,而非`newTabSpec`、`setContent`或`setView`。 9. 当使用`HttpUrlConnection`进行网络连接时,设置读取超时的属性方法是`setReadTimeout()`,而`...

    tabhost效果

    `TabLayout`提供了更加灵活和丰富的样式选项,且与`ViewPager`配合可以实现更高效的内存管理和性能优化。 ### 8. ButtonMenuTest 在提供的文件名"ButtonMenuTest"中,可能是一个测试项目,用于演示如何在`TabHost`...

    TabHost使用总结

    - 应该避免在每个选项卡中启动新的Activity,以减少内存消耗和提高性能。如果可能,尽量使用Fragment来管理内容。 - 记得为选项卡提供清晰的标识,以便用户知道每个选项卡的功能。 总的来说,TabHost是构建多视图...

    TabActivity

    在Android开发中,`TabActivity`是早期用来实现底部导航栏功能的一种方式。...如今,开发者应使用`TabLayout`和`ViewPager`来创建更现代、更灵活的Tab界面。在实际项目中,可以根据需求选择适合的Tab实现方式。

    XML.rar_CMarkup_Markup.h_c xml_xml

    5. `GetTagName()`,`GetAttr()` 和 `SetContent()` 方法:获取元素的标签名,读取或设置元素的属性和内容。 6. `AddChild()` 和 `RemoveChild()` 方法:在XML文档中添加或删除元素。 7. `Print()` 方法:将XML...

    QT下DOM读/写xml文档

    5. ** 读取XML **:使用`QFile`打开XML文件,然后用`QDomDocument::setContent()`或`QDomDocument::parse()`加载文件内容到DOM中。 6. ** 写入XML **:创建或修改DOM后,使用`QDomDocument::toString()`生成XML字符...

    Android ScrollableTabHost tab控件.rar

    2. **内存管理**:处理多个标签时,注意内存管理和Activity的复用,避免内存泄漏。 3. **版本兼容**:不同的Android版本可能会有不同的表现,需要做兼容性测试。 4. **样式定制**:可以通过自定义主题或直接修改View...

    TabHost, ActivityGroup 的使用例子

    然而,由于ActivityGroup存在一些问题,如内存泄漏、状态管理困难等,现在已经被Fragment和FragmentTransaction替代。尽管如此,理解ActivityGroup的工作原理仍有助于理解更现代的组件。 1. **初始化ActivityGroup*...

    嵌套TabHost

    - 当使用嵌套TabHost时,确保处理好内存管理和生命周期问题,防止内存泄漏和不必要的资源浪费。 - 对于多级选项卡,需要谨慎考虑用户体验,避免过于复杂的导航结构。 - 使用`Fragment`代替Activity可以简化逻辑,...

Global site tag (gtag.js) - Google Analytics