下面是能判断是否指定类的子类。但是要想全部查询。
这个不太可能吧。
Class c = ArrayListclass;
cisPrimitive(); //判断c是否为基本数据类型
cisAssignableFrom(Listclass); //判断c是否是List类的子类或父类
cgetGenericType(); //得到泛型类型
不过呢。你可以看看 eclipse 中的实现。就是你点击一个类。然后按 F4 就能从 "Type Hierarchy"。就能看到所有子类了。你可以搜搜看。
你的Jsp编译错误了,你没有在jsp中import你的Demo1类,你直接就调用了,所以报错了,请加上这一句。
<%page import="包名(如果有)Demo1"%>TgetClass()或者Tclass都是非法的,因为T是泛型变量。
由于一个类的类型是什么是在编译期处理的,故不能在运行时直接在Base里得到T的实际类型。
有一种变通的实现方式:
import javalangreflectArray;
import javalangreflectParameterizedType;
import javalangreflectType;
public class Generic extends Base<String> {
public static void main(String[] args) {
Generic c = new Generic();
Systemoutprintln(carray);
}
Object array ;
public Generic() {
array = ArraynewInstance(getGenericType(0), 100);
}
}
class Base<T> {
public Class getGenericType(int index) {
Type genType = getClass()getGenericSuperclass();
if (!(genType instanceof ParameterizedType)) {
return Objectclass;
}
Type[] params = ((ParameterizedType) genType)getActualTypeArguments();
if (index >= paramslength || index < 0) {
throw new RuntimeException("Index outof bounds");
}
if (!(params[index] instanceof Class)) {
return Objectclass;
}
return (Class) params[index];
}
}
其中Base<T>是泛型类,在父类中声明getGenericType,子类继承具体的Base<String>,那么在子类中就可以通过getGenericType(0)获取到String的class
局部变量
在方法
栈帧
中根本
没有名字
,只有
偏移地址
。变量名是给程序员看的。
如果你了解了这点,你就知道你的要求是从原理上不可能实现的。
当然,你可以封装一个类:
class
MyArray
{
private
String
name;
public
double[]
array;
public
MyArray(String
name,
double[]
array){
thisname
=
name;
thisarray
=
array;
}
public
String
toString()
{
return
thisname
+
"的内容是:"
+
thisarray;
}
}
然后输出这个类的对象:
MyArray
a
=
new
MyArray("array1",
new
double[]{01,
02,
03});
Systemoutprint(a);
不知道你说的“普通的java类”是什么。在spring里要注入的话,相应的类都要纳入spring的管理,对象由spring创建,对象从spring获取。就像你上面的BaseDaoImpl和BaseServiceImpl。
如果UserCarManager也是由spring管理的话,那同样适用@autowired就可以注入。
看你的提问,应该是指没有纳入spring管理的类如何注入spring管理的对象,这种情况可以用srping相关的静态方法达到目的。
比如:
WebApplicationContext webAppContext = WebApplicationContextUtilsgetWebApplicationContext(getServletContext());
BaseDaoImpl baseDao = (BaseDaoImpl) BeanFactoryUtilsbeanOfTypeIncludingAncestors(webAppContext, BaseDaoImplclass);
以上就是关于java中一个 类.class 发法 获取的描述类的对象,是 否 可以找到其 所有的子类 的名称全部的内容,包括:java中一个 类.class 发法 获取的描述类的对象,是 否 可以找到其 所有的子类 的名称、java el获取对象属性错误、在java中,使用泛型,比如说T,但是T.class就要报错。我想获取T的class对象怎样获取啊。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)