java提取Object内的值该用什么方法?

obj是一个Object类型的对象,跟踪的时候看到了里面是有参数的,可是我应该怎么取出来?求大神!

第1个回答  推荐于2016-11-07
首先,你的deviceName和isOn应该是定义在另一个类型里,而这个类型继承自Object。在非组件环境下,你可以试试找到这个类型,然后将obj强制转换成这个类型就可以通过相应的方法访问。
或者:这个类型实现了某个接口,须通过接口方法访问属性,那你就要找到这个接口,用同样的方式转换后访问。追问

但是我的这个obj是从另一个工程通过socketclient传过来的,在client端由原本的device类(自己定义的)转换成了Object。而在server端接收之后的object无法变成device类了。

追答

无法转换的原因可能是你这端没有Device类的定义,除非这个类型是基于某种组件模型的,像COM一样可以提供QueryInterface方法供客户端获取访问对象数据的接口方法,如果不是这样,你必须在的本地保留Device类的定义。

追问

我这端有Device类的定义。但是想Device dev = (Device)obj;转换结果报错说不能转换,

追答

那你就要看看是不是在反向串行化的操作中是不是有问题了。

追问

我是模仿的一个类似的代码,别的都没什么不同只是client端和server端在不同的工程里面,所以理论上操作是不会有太大问题的。。可以加个扣扣帮我看看么、

追答

我的机器上没有QQ 要不你把对象传输的代码发到我邮箱吧 914522531@qq.com
还有不能转换的错误提示内容

本回答被提问者采纳
第2个回答  2014-06-18
一般对象的参数是private的, 是不能直接通过 obj.isOn 这样拿到的,
规范的实体类都有 getter setter的, 所以只要是规范的 就可以 obj.getDeviceName() 得到deviceName追问

但是我的这个obj是从另一个工程通过socketclient传过来的,想在server端新建一个同样的类却发现无法转换。
Object obj = is.readObject();
Device dev = (Device)obj;//这一句报错,无法转换

追答

对象要流化, 必须要有实现 序列化接口, 里面的序列要一致

追问

private static final long serialVersionUID = 1L;
两个工程的类中都使用了这个。。

java提取Object内的值该用什么方法?
首先,你的deviceName和isOn应该是定义在另一个类型里,而这个类型继承自Object。在非组件环境下,你可以试试找到这个类型,然后将obj强制转换成这个类型就可以通过相应的方法访问。或者:这个类型实现了某个接口,须通过接口方法访问属性,那你就要找到这个接口,用同样的方式转换后访问。

Java的Object里面的值怎么提取出来?
一般都用for来循环遍历

java如何取得Object中的值?
for(Object object : list) {Map entry = (Map)object;值 = entry.get(‘字段名’);} 象(object),台湾译作物件,是面向对象(Object Oriented)中的术语,既表示客观世界问题空间(Namespace)中的某个具体的事物,又表示软件系统解空间中的基本元素。定义一个嵌入的对象。请使用此元素向您的 ...

java 想要取出 List里面 Object里的只有个值,求教怎么获得这个值?
List list = new ArrayList();list.add(123);list.add(456);list.add("abc");list.add("def");\/\/直接遍历输出元素for(Object o : list){System.out.println(o);}for(Object o : list){System.out.println(o.getClass().getName());}\/* * 如果要操作的话就必须知道取出元素的类型,...

如何获取一个Object中的数据。
把a换成你的Object对象就行了 import java.lang.reflect.Field;public class Test { public static void main(String[] args) throws Exception { A a = new A();a.name = "test";a.age = 20;Field[] fields = a.getClass().getFields();for (int i = 0; i < fields.length; i+...

Java中Object常用的7个方法,错过必悔!
1. hashCode()方法 hashCode()方法返回对象的哈希值,由对象的地址和内容决定。它常用于哈希表中,如HashMap、HashTable、HashSet。不同版本的Java对哈希值的计算算法有所不同。2. clone()方法 clone()方法创建当前对象的副本。Java提供了浅克隆和深克隆两种方式。浅克隆复制对象本身和其值类型的成员...

JAVA List<Object[]>取值问题
首先建议去看看Collection接口。然后看一下泛型。三种遍历方法:一:采用 for(int i = 0 ; i <objListstaff.size(); i++ ){ Object[] tempObj = objListstaff.get(i);system.out.print("技术部" + tempObj[0] + "———" + "销售部" + tempObj[1] );} 二:采用迭代器 for (...

Java中Object类常用的11个方法,你用过几个?
首先,我们需要了解getClass方法,它用来获取对象的运行时class对象,常用于与Java反射机制配合使用。hashCode方法用于计算对象的散列值,通常是对象堆内存地址,这在哈希表、缓存等场景中很有用。equals方法用于比较两个对象是否相等,如果引用相同则返回true;clone方法实现了对象的浅拷贝,适用于子类实现...

Java编程:Object类常见方法讲解
Object是Java语言中所有类的根本基类,所有类都直接或间接继承自Object类,因此可以使用Object类中的方法。Object类中常见方法如下:1. equals(Object obj) 方法 比较两个对象是否相等,地址相同返回true,值相等也返回true。例如:2. hashCode() 方法 返回对象的哈希码,用于比较对象相等性,常与equals...

...>>中怎么使用Java代码遍历获取String,Object的值?
先遍历List 对于每一个Map值,要获取String的话,就是要获取它的key值集合,LZ可以看一下api,有这个方法的,貌似得到的结果是一个set集合,遍历这个set集合便可以得到每一个String值,从而也可以获取到对应的Object

相似回答