社区
C#
帖子详情
请问一个反射对象强制转换的问题
cmlove_xixi
2009-12-25 11:18:15
我使用反射获取一个类的对象object 请问下桌面才能把这个object 转换成我需要的那个类啊
object obj = System.ReflectionAssembly.GetExecutingAssembly().CreateInstance(this.GetType().Namespace + "." + "
MyClass
", false);
MyClass是我的类名
现在想把这个object转成MyClass类对象
谢谢
...全文
329
26
打赏
收藏
请问一个反射对象强制转换的问题
我使用反射获取一个类的对象object 请问下桌面才能把这个object 转换成我需要的那个类啊 object obj = System.ReflectionAssembly.GetExecutingAssembly().CreateInstance(this.GetType().Namespace + "." + "MyClass", false); MyClass是我的类名 现在想把这个object转成MyClass类对象 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
26 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cmlove_xixi
2009-12-25
打赏
举报
回复
[Quote=引用 21 楼 sandy945 的回复:]
引用 18 楼 cmlove_xixi 的回复:
引用 16 楼 sandy945 的回复:
对象都不确定 你怎么.方法名
对啊 现在就是对象没办法强制转换!!
我上面的都白说了。
现在是你写代码,你知道对象 可以.出哪些方法 并选出你需要的方法
你认为 编译器 会和你一样这样智能么?
知道当前对象 获得当前对象 自动调用相应方法?
[/Quote]
呵呵 知道了 看来这样真的行不通了啊 那我换换做法吧 谢谢了啊
阿非
2009-12-25
打赏
举报
回复
[Quote=引用 18 楼 cmlove_xixi 的回复:]
引用 16 楼 sandy945 的回复:
对象都不确定 你怎么.方法名
对啊 现在就是对象没办法强制转换!!
[/Quote]
我上面的都白说了。
现在是你写代码,你知道对象 可以.出哪些方法 并选出你需要的方法
你认为 编译器 会和你一样这样智能么?
知道当前对象 获得当前对象 自动调用相应方法?
cmlove_xixi
2009-12-25
打赏
举报
回复
现在我的问题就是 要根据一个object对象 和一个类名字符串 这个类名只是个字符串,来将这个object转换成这个类名对象
谢谢
cmlove_xixi
2009-12-25
打赏
举报
回复
[Quote=引用 17 楼 pc6588 的回复:]
http://www.cnblogs.com/xianzuoqiaoqi/archive/2009/04/07/1431153.html
[/Quote]
这个非得要明确知道方法名才行的啊!!
cmlove_xixi
2009-12-25
打赏
举报
回复
[Quote=引用 16 楼 sandy945 的回复:]
对象都不确定 你怎么.方法名
[/Quote]
对啊 现在就是对象没办法强制转换!!
pc6588
2009-12-25
打赏
举报
回复
http://www.cnblogs.com/xianzuoqiaoqi/archive/2009/04/07/1431153.html
阿非
2009-12-25
打赏
举报
回复
对象都不确定 你怎么.方法名
cmlove_xixi
2009-12-25
打赏
举报
回复
[Quote=引用 13 楼 sandy945 的回复:]
首先,你的想法是实现不了的。
退一步说 ,就算你这步可以过去,下步呢 调用方法的时候 你如何知道当前对象 有什么方法
[/Quote]
我是想通过强制转换后能通过对象.方法名来做
cmlove_xixi
2009-12-25
打赏
举报
回复
因为类很多 我不想实例化那么多类对象 想用类名来反射,这也是不得已才想出的方法,难道真的不能这么实现吗??
谢谢
阿非
2009-12-25
打赏
举报
回复
首先,你的想法是实现不了的。
退一步说 ,就算你这步可以过去,下步呢 调用方法的时候 你如何知道当前对象 有什么方法
cmlove_xixi
2009-12-25
打赏
举报
回复
我的代码是这样的
object obj = System.Reflection.Assembly.GetExecutingAssembly().CreateInstance(this.GetType().Namespace + "." +
ValidateFactory.GetValidateEntityName(),
false);
红色的部分就是获取类名的方法 ,它只是返回了一个字符串
谢谢
cmlove_xixi
2009-12-25
打赏
举报
回复
[Quote=引用 9 楼 angel6709 的回复:]
引用 4 楼 yjcel1988 的回复:
增加一个父类,所有的要反射的类都继承它,在上面的代码中强制转换成父类
用接口,抽象类都可以
[/Quote]
目前就是用不了接口或抽象类 因为要实现的各种类中有各种复杂的方法 所以用不了工厂模式做
谢谢
cmlove_xixi
2009-12-25
打赏
举报
回复
[Quote=引用 7 楼 sandy945 的回复:]
要么你知道名字 要么一路反射到底
up
[/Quote]
现在这个object已经是我要的对象了 只是不知道桌面强制转换它,因为我的类名只是一个方法返回的字符串
谢谢
angel6709
2009-12-25
打赏
举报
回复
[Quote=引用 4 楼 yjcel1988 的回复:]
增加一个父类,所有的要反射的类都继承它,在上面的代码中强制转换成父类
[/Quote]
用接口,抽象类都可以
cmlove_xixi
2009-12-25
打赏
举报
回复
[Quote=引用 4 楼 yjcel1988 的回复:]
增加一个父类,所有的要反射的类都继承它,在上面的代码中强制转换成父类
[/Quote]
不行的啊 增加父类后强制转成父类那么子类中写的方法就不能用了。本来我是要用工厂接口做的,但是我的这个实现会很复杂所以只能通过一个公有方法获取类名然后反射成一个对象然后转换,但现在不知道怎么转换成目标对象了,因为反射回来就是个object
谢谢
阿非
2009-12-25
打赏
举报
回复
要么你知道名字 要么一路反射到底
up
zgke
2009-12-25
打赏
举报
回复
不知道类名..... 如果你反射的是自己的东西 可以考虑使用接口来实现..
如果不是你自己的东西...要么你知道名字 要么一路反射到底.
阿非
2009-12-25
打赏
举报
回复
不知道类名 就没办法
yjcel1988
2009-12-25
打赏
举报
回复
增加一个父类,所有的要反射的类都继承它,在上面的代码中强制转换成父类
cmlove_xixi
2009-12-25
打赏
举报
回复
[Quote=引用 1 楼 sandy945 的回复:]
MyClass mc= obj as MyClass;
if(mc!=null)
{
... do sth
}
[/Quote]
我现在是举个例子说那个类叫MyClass 其实我不知道类名,类名是通过哟个方法返回的字符串。也就是说我反射这个类对象的时候不知道它的名字 而是用一个方法获取了一个类名的字符串而已。
谢谢
加载更多回复(6)
java进阶技术:泛型、
反射
、注解
泛型是Java SE 1.5的新特性,好处是在编译时检查类型安全,并且所有的
强制
转换
都是自动和隐式的,以提高代码的重用率。JAVA
反射
机制是构建框架技术的基础所在。灵活掌握Java
反射
机制,对以后学习框架有很大的帮助。注解(Annotation)是JDK1.5及以后引入的新特性,与类、接口、枚举是在同一个层次。可声明在包、类、字段、方法、局部变量、方法参数等前面,用来对这些元素进行说明,注释。
java 利用
反射
对目标
对象
内属性的
强制
转换
今天碰到一个
问题
:一个实体在进行序列化和反序列化后内部的字段类型发生了变化(比如枚举被
转换
为char类型),因此需要在运行时把类型给
转换
回来(因为后续方法会用到这个参数)。然后博主翻了翻
反射
api+论坛上逛了逛。找到一个解决方案。 1.利用
反射
可以拿到
对象
中属性对应的声明类型type //通过完整的类名(包名.类名)获得ZhangSan对应的的Class
对象
Class<...
java
反射
强制
转换
_Java框架基础——
反射
(reflect) (转)
阅读目录一、Class类的使用二、动态加载类三、获取方法信息四、获取成员变量、构造函数信息五、方法的
反射
六、通过
反射
了解集合泛型的本质一、Class类的使用1)在面向
对象
(oop)的世界里,万事万物皆
对象
。在Java中,包括基本的数据类型,都是
对象
。Class c = int.class;//int 的类类型那就是说:类是
对象
,类是java.lang.Class类的实例
对象
。这个
对象
我们称之为类类...
无法将类型为“DAL.XXX”的
对象
强制
转换
为类型“IDAL.XXXX
【
问题
】 无法将类型为DAL的
对象
强制
转换
为类型IDAL 【报错误的位置】 此
问题
出现的位置一般是在工厂层中
反射
加工厂那一个步骤。 【实际出现
问题
的位置】 报这个错误,实际你代码出错的位置实在DAL层的DAL类的定义上,没有实现IDAL接口。 【感受】 遇到
问题
,解决
问题
,有耐心一点。...
理解java
反射
使用Java
反射
机制,我们可以在程序运行时获取要创建的类的Class
对象
,然后使用Class
对象
的newInstance()方法来动态地创建
对象
。注解框架:在注解框架中,我们可以使用注解来标注Java类、方法或属性,然后在运行时使用Java
反射
机制来获取这些注解,并根据注解中的信息执行相应的操作。在Java中,创建一个
对象
通常需要在代码中使用new关键字,并指定要创建的类的名称和构造函数的参数等信息。动态代理需要使用Java
反射
机制来获取被代理
对象
的信息,并在代理
对象
中动态地生成相应的方法。
C#
110,580
社区成员
642,559
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章