
这个串和那个属性靠什么对应?
public class fyl {
public static void main(String[] args){
for(String arg:args){
if("weight"equals(arg))
Systemoutprintln(PlaneweightgetClass());
else if("name"equals(arg))
Systemoutprintln(PlanenamegetClass());
else
Systemoutprintln("不存在");
}
}
}
class Plane{
static Integer weight=42;
static String name="plane";
}
不知道你是不是要这样的。记得在运行的时候给main提供参数。
JAVA本身不提供这种功能。
这样的功能只能使用第三方jar包。
如相关Excel的jar包可以直接插入行,读取行,这都是通过文件每个字节(或字符)解析来的。
令:如果你的意思是读取一个Windows下的TXT或MP3这样的文件属性,那么这个是Windows系统自己保存的属性,并非文件本身属性,即传至Linux下面不一定能看到这些属性。所以说JAVA是不可能直接读取到Windows上文件点击右键后查看到的备注信息的。
用反射,代码你可以参考下面的:
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());
}
}
}
以上就是关于java中,已知一个字符串如何获取class中与该串一致的属性的数据类型全部的内容,包括:java中,已知一个字符串如何获取class中与该串一致的属性的数据类型、请问下 如何用JAVA 读取一个文件的其他属性,比如它的备注的内容。、java 遍历 类属性的属性值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)