java如何判断属性类型

java如何判断属性类型,第1张

你是想通过传入一个类模板然后判断出某个属性类型

利用反射可以做到

Field filed = classNamegetDeclaredField(parameter);

className为对应类模版,parameter为你的属性名称

filedgetType()toString(); 然后利用这个方法可以查询到对应属性类型

基本类型直接返回比如 int 直接返回int ,如果是包装或者引用 则直接

返回对应包类名 比如 class javalangShort

如果你要获取所有的 还是利用class对象

Field[] fields =classNamegetDeclaredFields();

循环遍历就可以了

用反射,代码你可以参考下面的:

public static void testReflect(Object model) throws NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException{

Field[] field = modelgetClass()getDeclaredFields(); //获取实体类的所有属性,返回Field数组

for(int j=0 ; j<fieldlength ; j++){ //遍历所有属性

String name = field[j]getName(); //获取属性的名字

Systemoutprintln("attribute name:"+name);

String type = field[j]getGenericType()toString(); //获取属性的类型

if(typeequals("class javalangString")){ //如果type是类类型,则前面包含"class ",后面跟类名

Method m = modelgetClass()getMethod("get" + namesubstring(0,1)toUpperCase() + namesubstring(1) );

String value = (String) minvoke(model); //调用getter方法获取属性值

if(value != null){

Systemoutprintln("attribute value:"+value);

}

}

if(typeequals("class javalangInteger")){

Method m = modelgetClass()getMethod("get" + namesubstring(0,1)toUpperCase() + namesubstring(1) );

Integer value = (Integer) minvoke(model);

if(value != null){

Systemoutprintln("attribute value:"+value);

}

}

if(typeequals("class javalangShort")){

Method m = modelgetClass()getMethod("get" + namesubstring(0,1)toUpperCase() + namesubstring(1) );

Short value = (Short) minvoke(model);

if(value != null){

Systemoutprintln("attribute value:"+value); }

}

if(typeequals("class javalangDouble")){

Method m = modelgetClass()getMethod("get" + namesubstring(0,1)toUpperCase() + namesubstring(1) );

Double value = (Double) minvoke(model);

if(value != null){

Systemoutprintln("attribute value:"+value);

}

}

if(typeequals("class javalangBoolean")){

Method m = modelgetClass()getMethod("get"+name);

Boolean value = (Boolean) minvoke(model);

if(value != null){

Systemoutprintln("attribute value:"+value);

}

}

if(typeequals("class javautilDate")){

Method m = modelgetClass()getMethod("get"+name);

Date value = (Date) minvoke(model);

if(value != null){

Systemoutprintln("attribute value:"+valuetoLocaleString());

}

}

}

这是获得一个class类的实例,JAVA里面有个类的名字叫做class,在javalang里,用来表示当前类这个类型,这个class类的对象是由JVM自动构造的,所以可以直接获取。

有点拗口,具体的方法和信息你可以看下API。

以上就是关于java如何判断属性类型全部的内容,包括:java如何判断属性类型、java 遍历 类属性的属性值、java中 .class 属性从哪里来哪个类中的属性等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9341718.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存