java里如何根据类名(String)返回类
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java里如何根据类名(String)返回类相关的知识,希望对你有一定的参考价值。
例如:正常写法:
(UserClass)list(0).getUserName
想实现:
String str = "UserClass";
(str.getClassByName())list(0).getUserName
这里有没有类似于getClassByName()这样的方法?
public Object getClassByName(String className)
if(className.equals("A"))
return new A();
else if(className.equals("B"))
return new B();
参考技术A
可以用反射实现,传入的参数是类的全限定名称
Class clz = Class.forName("java.lang.String"); 参考技术B Class.forName("类路径")这个方法返回的就是一个类 参考技术C 好像可以用反射 参考技术D 楼上说的有道理
C#反射执行方法返回List,怎么获取List
我有一系列按照一定规则命名的类,现在利用类名反射执行方法,其中一个方法返回的是List<类名>的list列表。但是反射方法返回的都是object,怎么把这个object转换为List。注:此处类名为string类型,不能找到对应的类。
问题已解决很久了,突然看见这个,把答案贴出来,有类似问题的可以参考一下。
foreach (object o in (IEnumerable)listModel)
//do something
if(datas!=null)
转换成功,可以用datas
追问
没有对应类型,类型是变化的
追答不知类型,你怎么转,你再是变化的,但业务决定到某个时间点,也是必需有类型的。
那你只能一个个判断
list datas= object as List; //一定要你对应的类型
if(datas!=null)
转换成功,可以用datas
list datas= object as string; //一定要你对应的类型
if(datas!=null)
转换成功,可以用datas
....
那我还用个屁的反射
参考技术B IEnumerable vvv = obj as IEnumerable;用这个可以将反射返回的object转化成集合的方式。
然后就可以foreach这个东西了。本回答被提问者采纳
以上是关于java里如何根据类名(String)返回类的主要内容,如果未能解决你的问题,请参考以下文章
js为啥根据id就可以找到容器里的子元素,而根据类名就找不到?