ZKX's LAB

java 反射获取字段名

2020-07-16知识9

Java反射 在只知道类名的情况下,怎样给其中的私有属性赋值 利用反射能假设类名为A实例化类A p=new A();获取classClass c=p.getClass();获取该类所有的字段Field[]fields=c.getDeclaredFields();遍历赋值for(int i=0;i;i+){String filedName=fields[i].getName();AccessibleTest类中的成员变量为private,故必须进行此操作fields[i].setAccessible(true);判断类型Class?type=fields[i].getType();获取字段类型String typeName=type.getName();System.out.println(type.getName());对字段进行赋值 第一个参数为对象引用第二个参数为要附的值如果为字符串类型if(\"java.lang.String\".equals(typeName)){fields[i].set(p,\"1\");}如果为日期类型else if(\"java.util.Date\".equals(typeName)){fields[i].set(p,new Date());}else{fields[i].set(p,1);}}/楼主我只是简单的写了下。可能还需要判断字段名称以及其他类型什么的。最后希望楼主多看看java 文档。java反射获取未知字段名的私有字段 跟我现在做的东西有点像呢。正好分享一下代码吧。以下是代码注:class 传入需要反e79fa5e98193e59b9ee7ad9431333335313235射的class object 传入实例化的classpublic static Map,Object>mappingEntityToMap(Class c,Object entity)throws Exception{Map,Object>ret=new HashMap,Object>();Field[]fields=c.getDeclaredFields();String fieldName;String fieldValue;for(int i=0;i;i+){try {Field field=fields[i];设置字段访问权限field.setAccessible(true);fieldName=field.getName();Object obj=field.get(entity);fieldValue=obj=null?obj.toString();注释代码控制是否返回空节点if(fieldValue.equals(\"\")){continue;}ret.put(fieldName,fieldValue);} catch(Exception e){throw new Exception(ExceptionList.OBJECT_MAPPING_MAP_ERROR);}}return ret;}java怎么从一个表里搜索出所有字段名并放到一个list里 ResultSetMetaData rsmd=rs.getMetaData();int numCols=rsmd.getColumnCount();String resultRow=\";List lit=new ArrayList();for(int i=1;i;i+){list.add(rsmd.getColumnName(i));System.out.println(rsmd.getColumnName(i));列名}java怎样获取一个表中的字段名 java获取不了,可是jdbc是数据库厂商提供的,会访问内部表,系统表返回字段名。java解析字符串(解析sql语句,得到需要查询显示的字段名)。 java解析字符串(解析sql语句,得到需要查询显示的字段名)。例1:select f_spbm from 表1 解析出来的需要查询的字段应该是-f_spbm 例2:select f_spbm,f_spmc as '名称',java List中得到字段名 ResultSet rs=st.executeQuery(\"select*from A where 1=1\");ResultSetMetaData md=rs.getMetaData();取第一个字段名md.getColumnName(1);for(int i=1;i();i+){System.out.print(md.getColumnName(i)+\"\");} 这是循环取出所有字段名java如何获得数据库表中各字段的字段名 Java获取数据库的表中各字段的字段名,代码如下:import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.PreparedStatement;import java.sql.ResultSetMetaData;import java.sql.SQLException;public class TestDemo {public static Connection getConnection(){Connection conn=null;try {Class.forName(\"com.mysql.jdbc.Driver\");String url=\"jdbc:mysql:/数据库IP地址:3306/数据库名称;String user=\"数据库用户名;String pass=\"数据库用户密码;conn=DriverManager.getConnection(url,user,pass);} catch(ClassNotFoundException e){e.printStackTrace();} catch(SQLException e){e.printStackTrace();}return conn;}public static void main(String[]args){Connection conn=getConnection();String sql=\"select*from AccessType;PreparedStatement stmt;try {stmt=conn.prepareStatement(sql);ResultSet rs=stmt.executeQuery(sql);ResultSetMetaData data=rs.getMetaData();for(int i=1;i();i+){获得所有列的数目及实际列数int columnCount=data.getColumnCount();获得指定列的列名String java获取数据库字段名方法是什么呢? ResultSetMetaData metaDate=rs.getMetaData();int number=metaDate.getColumnCount();String[]column=new String[number];for(int j=0;j;j+){ column[j]=metaDate.Java反射 在只知道类名的情况下,怎样给其中的私有属性赋值 利用反射能/假设类名为A/实例化类 A p=new A();获取class Class c=p.getClass();获取该类所有的字段 Field[]fields=c.getDeclaredFields();遍历赋值 for(int i=0;如何利用java反射顺序的从一个java类中得到其中定义的成员变量名或者方法 我不太明白你问题的意思不知道为什么你理解的那么复杂,对于java的反射是可以直接获取字段Field的,而每一个Field都有其get set方法就相当于getXXX和setXXX了我不知道你这个ArrayList里面装的是什么,写个小例子,我理解你需要处理的大概也就是这样吧import java.lang.reflect.Field;import java.util.ArrayList;import java.util.List;public class A {private String field1;private String field2;public String getField1(){return field1;}public void setField1(String field1){this.field1=field1;}public String getField2(){return field2;}public void setField2(String field2){this.field2=field2;}public static void main(String[]args){A a=new A();a.field1=\"1;a.field2=\"2;for(Field field:A.class.getDeclaredFields()){try {System.out.println(field.get(a));} catch(IllegalArgumentException e){TODO Auto-generated catch blocke.printStackTrace();} catch(IllegalAccessException e){TODO Auto-generated catch blocke.printStackTrace();}}}} 另外List只是一个集合,也就是某种意义上来说是无序的,他的顺序是以

#赋值#赋值语句#string#数据库

随机阅读

qrcode
访问手机版