java反射获取类属性问题。
PHP中文网
PHP中文网 2017-04-18 10:28:16
0
3
811

代码:

 public static List<Object> select(String sql, String o)
                throws SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException {
            Class c = Class.forName(o);
            Field[] fls = c.getDeclaredFields();
            List<String> list=  new ArrayList<>();
            for (int i = 0; i < fls.length; i++) {
                System.out.println("公有属性之" + fls[i].getName());
                list.add(fls[i].getName());
            }
            Object object = c.newInstance();
            List<Object> l = new ArrayList<>();
            stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery(sql);
            while (rs.next()) {
                // Retrieve by column name
                String id = rs.getString("href");
               String name = rs.getString("title");      
            // Display values
            System.out.print("ID: " + id);
            System.out.print(", name: " + name);
        }
        rs.close();
        stmt.close();
        conn.close();
        return l;

    }

我想获取传进来的类的所有属性,然后通过re.getString获得值,但是我不知道属性有多少个,在rs.next里for循环遍历的话就会失去rs的作用域。麻烦哪位大神帮我看看怎么写 = =。

PHP中文网
PHP中文网

认证0级讲师

모든 응답(3)
Ty80

저는 조판을 잘 못해서 그냥 읽을 수 있어요.

으아악
小葫芦

실제로 리플렉션에 문제가 있습니다.
클래스 객체를 가져오려는 경우에도 외부 클래스를 동적으로 로드해야 하는 경우가 아니면 Class.formName을 전달하지 않는 것이 가장 좋습니다.

이렇게 쓰는 것이 귀하의 요구 사항에 맞는지 모르겠습니다

으아악
小葫芦

org.springframework.jdbc.core.BeanPropertyRowMapper 이미 구현된 내용을 참고하고 따라해 보세요.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿