Существует ли какой-либо "автоматический способ" приведения "Объекта" к персонализированному типу данных модели в ActionScript 3?
Пример:
package Example{
public class ExampleModel{
private _id:int;
private _randomAttribute:String;
public function ExampleModel(){
_id = 0;
_randomAttribute = "";
}
public function get id():int{
return _id;
}
public function set id(value:int):void{
_id = value;
}
public function get randomAttribute():String{
return _randomAttribute;
}
public function set randomAttribute(value:String):void{
_randomAttribute = value;
}
}
}
Затем, в некоторой части моего кода, давайте предположим, что у меня есть что-то вроде этого:
var _obj:Object = new Object();
_obj.id = 1;
obj.randomAttribute = "Hello World";
То, что я хочу, было бы что-то вроде:
* * 1010
Но когда я это сделаю, результат на _exampleModel будет нулевым.
Есть идеи?
Спасибо.
РЕДАКТИРОВАТЬ:
Согласно ответу Маниша , все, что я изменил, это тип p var, который позволяет мне проходить все виды атрибутов:
public function fromObject(obj:Object):void{
//p:* includes every type of attributes.
for (var p:* in obj)
if (this.hasOwnProperty(p))
// Set private var directly.
this["_" + p] = obj[p];
}
Спасибо Маниш и rcdmk .
Ответа Маниша мне было достаточно, и согласно комментарию rcdmk , p: String не относится к типу данных, через которые будет проходить цикл, это фактически имя свойства, которое делает смысл, потому что каждое имя является строкой .