使用反射获取字段的值时获取异常

维杰·南德瓦纳(Vijay Nandwana)

我需要帮助来使用反射来获取字段的价值。有一个类(SocketTest.class)具有服务器套接字实现,套接字功能运行良好。我试图获取此类的套接字字段,并打算调用其getInputStream()方法来接受输入。以下代码给了我IllegalArgumentException-Can not set java.net.Socket field com.test.SocketTest.socket to java.lang.Class

Field socketField = SocketTest.class.getDeclaredField("socket");
socketField.setAccessible(true);
Class<?> socketTest = "SocketTest".getClass();
Socket socket = (Socket)socketField.get(socketTest);
霍尔格

该表达式"SocketTest".getClass()getClass()String实例调用实例"SocketTest"将返回Class表示该类的类String,换句话说,它等效于expression String.class

然后,不清楚为什么将Class对象传递给的get方法Fieldget方法应该读取该字段,并且由于这是在类中声明的字段SocketTest,因此它需要的实例SocketTest,而不是Class实例,SocketTest.class也不需要String.class但是,如果该字段为static,则您根本不需要传递任何内容,则可以使用socketField.get(null)

通常,您应该重新考虑您的设计。如果该类SocketTest封装了一个Socket实例,则SocketTest需要分发一个InputStream,如果需要的话,并且如果不认为这样做会破坏封装,那么,您不应尝试使用Reflection抵消该设计决策。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用反射获取字段值?

来自分类Dev

Java反射-获取字段值

来自分类Dev

使用Java反射获取字段信息

来自分类Dev

使用反射获取字段的通用类型

来自分类Dev

使用mongo Java Driver 3.0从Mongo集合中获取字段的不同值时发生异常

来自分类Dev

通过反射休眠无法获取字段值

来自分类Dev

如何在Java反射中获取字段值

来自分类Dev

使用反射获取C#字段的值

来自分类Dev

使用反射获取内部类字段值

来自分类Dev

如何使用反射获取关联字段的值

来自分类Dev

使用LINQ查询获取字段值

来自分类Dev

Java反射:获取字段类

来自分类Dev

org.hibernate.PropertyAccessException:无法通过反射获取器获取字段值

来自分类Dev

JPA-Hibernate-“无法通过继承的反射获取器获取字段值

来自分类Dev

尝试获取字段的值时发生属性错误

来自分类Dev

javax.persistence.PersistenceException:org.hibernate.PropertyAccessException:无法通过Entity.id的反射获取器获取字段值

来自分类Dev

如何使用jQuery以重复形式获取字段的值?

来自分类Dev

使用DjangoRestFramework序列化器获取字段值

来自分类Dev

使用simplexml解析PHP以获取字段值

来自分类Dev

Logstash:使用Filebeat时如何从路径获取字段?

来自分类Dev

如何通过反射获取字段的包名?

来自分类Dev

使用反射获取元组的值

来自分类Dev

使用反射获取属性值时参数计数不匹配

来自分类Dev

获取字段Morphia的最大值

来自分类Dev

获取字段查询值的元组

来自分类Dev

从链接获取字段的值

来自分类Dev

如何获取字段类型和值?

来自分类Dev

mongodb-Java获取字段值

来自分类Dev

从链接获取字段的值

Related 相关文章

热门标签

归档