‘壹’ java反射取对象属性值 不是通过get方法取值
反射不是通过get取值的,是通过该对象的信息,比如说名称、内存地址等来访问类,方法,属性等,可以获取任意对象的信息,但不能获得私有属性(private String s=“sd”;)的值,切记
推荐《JAVA核心技术》这本书会对你有帮助的
‘贰’ 如何java编程实现提取数据库中的表的属性值,并可视化出来。比如说创建了一张表,属性有id、name等等
思路:你先建立数据库连接:连接数据库的方式你应该会吧。不会在网上查一下,获取连接后:拿到连接对象:如下:
Connection conn = DriverManager.getConnection(url,userName,password);
//实现关于数据库的整体综合信息对象:如下:
java.sql.DatabaseMetaData dbmd=conn.getMetaData();
//获取数据库相关的信息,
System.out.println("数据库产品名: "+dbmd.getDatabaseProctName());
System.out.println("数据库是否支持事务: "+dbmd.supportsTransactions());
System.out.println("数据库产品的版本号:"+dbmd.getDatabaseProctVersion());
//获取全表相关的信息
ResultSet tSet=dbmd.getTables(null,"%","%",newString[]{"TABLE","VIEW"})
while(tSet.next()){
System.out.println(tSet.getRow()+"_表类别:"+tSet.getString("TABLE_CAT")+"_表模式:"+tSet.getString ("TABLE_SCHEM")+"_表名称:"+tSet.getString("TABLE_NAME")+"_表类型:"+tSet.getString("TABLE_TYPE")
}
//获取表的主键列信息;
ResultSetprimaryKey=dbmd.getPrimaryKeys("MANOR","PUBLIC","SYS_ROLE_RES");
while(primaryKey.next()){
System.out.println("表名:"+primaryKey.getString("TABLE_NAME")+",列名:"+primaryKey.getString("COLUMN_NAME")
+" 主键名:"+primaryKey.getString("PK_NAME"));
//其中表名:SYS_ROLE_RES,
}
//获取表的外键列信息"
ResultSet foreinKey=dbmd.getImportedKeys("MANOR","PUBLIC","SYS_ROLE_RES");
while(foreinKey.next()){
System.out.println("主键名:"+foreinKey.getString("PK_NAME")+",外键名:"+foreinKey.getString("FKCOLUMN_NAME")
+",主键表名:"+foreinKey.getString("PKTABLE_NAME")+",外键表名:"+foreinKey.getString("FKTABLE_NAME")
+",外键列名:"+foreinKey.getString("PKCOLUMN_NAME")+",外键序号:"+foreinKey.getString("KEY_SEQ"));
}
相获取更多SQL参数,可参考数据库相关方面的教材。
‘叁’ java怎么通过反射获得所有的属性的值
Class<?> clazz = ref.getClass();
Method method=clazz.getMethod("getLength");
System.out.println(method.invoke(ref));
‘肆’ java如何循环可以可以获取到每个属性的值 ,不要用对象名.get属性名这种方式获取
覆盖模型层对象的toString方法,进行重写,写有意义的内容,把属性全都写进去,
然后直接对象.toString()把所有的打印出来
给你文档最后一条参考
‘伍’ Java获取泛型对象中的某个属性值
首先做一个接口,接口中声明需要的取值方法
然后做你要的实际的类,每个类实现不同的取值方法
然后list通过接口进行定义,将每个实际类的对象insert到list中间
然后利用多态实现动态的方法绑定,实现你的需求