日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java后台调用Flex自定义类型 (Java和AS类型转换问题)

發布時間:2025/1/21 java 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java后台调用Flex自定义类型 (Java和AS类型转换问题) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

最近在做一個基于Red5的流媒體交互平臺,實現音頻,視頻,文本的交互。遇到一個問題,封裝的類型要能進行轉換,或許第一想到的是BlazeDS實現數據的轉換,這里不是實現前臺代用后臺,是后臺處理前臺的實體,好了,實際問題。 前臺有個MessageDTO,Java后臺有個MessageDTO,實現對消息的封裝, package com.Model
{
[Bindable]
[RemoteClass(alias="cn.stdu.webDTO.MessageDTO")]
public class MessageDTO
{
//發言者
public var nickname:String;

//發言內容
public var msg:String;

//發言時間
public var time:Date;

//是悄悄話
public var isprivatetalk:Boolean;

//發言的對象
public var acceptnickname:String;

//粗體
public var fontWeight:String = "";

//傾斜
public var fontStyle:String="";

//下劃線
public var fontTextDecoration:String="";

//顏色
public var fontColor:uint;
}
}

AS的MessagDTO,這里注意一點,屬性設置成Public了,不需要設置getter/setter獲取器,但是必須保證屬性和Java后臺相同,Java后臺MessageDTO package cn.stdu.webDTO;

import java.io.Serializable;
import java.util.Date;

public class MessageDTO implements Serializable{

/**
* The VO from DTO
*/
private static final long serialVersionUID = 1L;
//Message的一些信息
private String nickname;
private String acceptnickname;
private String msg;
private boolean isprivatetalk;
private Date time;
private String fontColor; //Flex中Color形式 uint “00ff00ff” 需要轉換
private String fontStyle;
private String fontWeight;
private String fontTextDecoration;

public void setNickname(String nickname){
this.nickname=nickname;
}
public String getNickname(){
return nickname;
}
public void setAcceptnickname(String acceptnickname){
this.acceptnickname=acceptnickname;
}
public String getAcceptnickname(){
return acceptnickname;
}
public void setMsg(String msg){
this.msg=msg;
}
public String getMsg(){
return msg;
}
public void setDate(Date time){
this.time=time;
}
public Date getDate(){
return time;
}
public void setPrivatetalk(boolean isprivatetalk){
this.isprivatetalk=isprivatetalk;
}
public boolean getPrivatetalk(){
return isprivatetalk;
}
public void setMsgColor(String fontColor){
this.fontColor=fontColor;
}
public String getMsgColor(){
return fontColor;
}
public void setMsgIclined(String fontStyle){
this.fontStyle=fontStyle;
}
public String getMsgIclined(){
return fontStyle;
}
public void setMsgBold(String fontWeight){
this.fontWeight=fontWeight;
}
public String getMsgBold(){
return fontWeight;
}
public void setMsgUnderline(String fontTextDecoration){
this.fontTextDecoration=fontTextDecoration;
}
public String getMsgUnderline(){
return fontTextDecoration;
}

} 前臺操作 this.netConnection.call("sendMessage", new Responder(function(obj:Object):void{}),this.userName,obj);
在Java后臺有一個sendMessage方法: public void sendMessage(String sender,MessageDTO message){
?? ??? ?
?? ??? ?//System.out.println(" test1 "+sender);
?? ??? ?//System.out.println(" test1 "+accepter);
?? ??? ?//System.out.println(" test1 "+param[0]);
?? ??? ?//System.out.println(" test2 "+param[1]);
?? ??? ?
?? ???? System.out.println("類型是否發生轉換?"+sender+" "+message.getAcceptnickname());
?? ??? ?if(message.getPrivatetalk()){
?? ??? ??? ?callClient(message.getAcceptnickname(),"addShowMessage",new Object[]{message,1});
?? ??? ?}else{
?? ??? ??? ?if(message.getAcceptnickname().equals("所有人")){
?? ??? ??? ??? ?
?? ??? ??? ?}else{?? ?
?? ??? ??? ?}
?? ??? ?}
?? ??? ?
?? ??? ?
?? ?} 參數就傳過來了,注意問題,前臺AS類必須聲明成 如下形式 [Bindable] [RemoteClass(alias="cn.stdu.webDTO.MessageDTO")]
這句話指明和Java的具體類對應一直,同時不需要一定痛過Blazeds才實現這種轉換,在Red5 中有AS和Red5中Java代碼類型的對應,只是AS需要指明而已!!
強調一點,一定要確定AS和Java兩個實體類型一致,今天因為這個原因,一直就傳不過來參數,網上找了很多,都不是我遇到的,在此記錄一下,希望在用AS和Red5開發的朋友有所幫助
!!!!

轉載于:https://www.cnblogs.com/blog-li/archive/2012/03/11/Java-AS.html

總結

以上是生活随笔為你收集整理的Java后台调用Flex自定义类型 (Java和AS类型转换问题)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。