返回信息流本人java小白,现在碰到一个棘手的问题,描述如下:
本人需要定义一个类,
在类中有一个变量的类型不确定,可能是int,string或者boolen
并且需要定义统一的getval和tostring方法
请问如何解决这个问题,用泛型吗?
限制是
1)因为牵涉到后面的编码译码处理,而译码后无法进行强制类型转换,因此需要定义成统一的一个类,不能变成多个类
2)另外编码器的原因,类里面不能增加新的变量,只能在方法中进行类的类型的适应处理。
——————————————————————————————
补充下编译码器的入口和出口,以及处理流程,可能有助于理解这个问题
假设要定义的类是MyObj,里面的某一个变量可能是int、string或者boolean
编码器入口是 list<MyObj>,出口是编码后的String
译码器入口, 是编码后的String,和制定的目标转换类类型,比如MyObj类,出口则是list<MyObj>
得到译码器的数据后,需要提取list<MyObj>中的MyObj实例中的变量
---------------------------------
现在统一类可能解决不了这个问题了,想到的方法是用string统一数据类型,再定义一个string指示数据类型,译码端根据译码后的MyObj中的数据类型string转换数据
不过还是不知道译码端如何写类型转换的代码,因为转换的目标类型是不确定的。
————————————————
对了 有人了解obix吗? 这个问题应该跟OBIX有点类似。但是OBIX没有给收端代码。
这是一条镜像帖。来源:北邮人论坛 / java / #48129同步于 2016/3/3
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
【冰天雪地拜大神】求问一个关于定义java类的问题
morning
2016/3/3镜像同步21 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
class Temple<T>{
T t;
Temple(T t){
this.t = t;
}
public T getVal(){
return t;
}
public String toString(){
return t+"";
}
}
似乎是这样
是啊,第一次碰到这种需求,主要是因为后面需要经过编码器和译码器,对于译码器在译码中只能对一种类进行转换处理,即将编码序列转换为一种制定类的list,
如果定义一个基类,采用extends处理定义子类的话,译码之后只能回到父类,由于经过编译码,编译器无法强制转换为特定的子类。
【 在 icyfox 的大作中提到: 】
: 需求很奇怪,竟然不确定类型是什么
不同多态是因为,译码后只能转换为同一类的list,使用多态的话,只能用父类的list
那么问题来了,因为经过编译码过程,无法将译码后的父类list中的某一个元素强制转换为制定的子类。
【 在 guoxiangonly 的大作中提到: 】
: 为什么不用多态
谢谢,想过这种方法, 但是不知道Temple<T>, Temple(String) 和 Temple<Integer> 是属于一种类,还是属于2个类。
具体的处理流程我在帖子里面补充了,译码器的入口会指定一个转换类类型,出口是相应类型的list, 如果采用这种类的定义, 译码器入口的指定转换类类型可以直接写Temple吗?还是必须写Temple<X>。
这个问题头疼死了。
【 在 dongqing 的大作中提到: 】
: class Temple<T>{
: T t;
: Temple(T t){
: ...................