java提取Object内的值该用什么方法?
obj是一个Object类型的对象,跟踪的时候看到了里面是有参数的,可是我应该怎么取出来?求大神!...
obj是一个Object类型的对象,跟踪的时候看到了里面是有参数的,可是我应该怎么取出来?求大神!
展开
2个回答
展开全部
首先,你的deviceName和isOn应该是定义在另一个类型里,而这个类型继承自Object。在非组件环境下,你可以试试找到这个类型,然后将obj强制转换成这个类型就可以通过相应的方法访问。
或者:这个类型实现了某个接口,须通过接口方法访问属性,那你就要找到这个接口,用同样的方式转换后访问。
或者:这个类型实现了某个接口,须通过接口方法访问属性,那你就要找到这个接口,用同样的方式转换后访问。
更多追问追答
追问
但是我的这个obj是从另一个工程通过socketclient传过来的,在client端由原本的device类(自己定义的)转换成了Object。而在server端接收之后的object无法变成device类了。
追答
无法转换的原因可能是你这端没有Device类的定义,除非这个类型是基于某种组件模型的,像COM一样可以提供QueryInterface方法供客户端获取访问对象数据的接口方法,如果不是这样,你必须在的本地保留Device类的定义。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般对象的参数是private的, 是不能直接通过 obj.isOn 这样拿到的,
规范的实体类都有 getter setter的, 所以只要是规范的 就可以 obj.getDeviceName() 得到deviceName
规范的实体类都有 getter setter的, 所以只要是规范的 就可以 obj.getDeviceName() 得到deviceName
更多追问追答
追问
但是我的这个obj是从另一个工程通过socketclient传过来的,想在server端新建一个同样的类却发现无法转换。
Object obj = is.readObject();
Device dev = (Device)obj;//这一句报错,无法转换
追答
对象要流化, 必须要有实现 序列化接口, 里面的序列要一致
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询