JAVA反射獲取屬性名報錯

问题描述

JAVA反射獲取屬性名報錯

反射获取属性名异常,遍历明明存在,指定属性名获取却报错,求指点。代码如下:
public class Test2 {
private String column1;
private List column2;

public String getColumn1() {
    return column1;
}
public void setColumn1(String column1) {
    this.column1 = column1;
}
public List<String> getColumn2() {
    return column2;
}
public void setColumn2(List<String> column2) {
    this.column2 = column2;
}

public static void main(String[] args) {
    try {
        Class<?> c=Test2.class;
        Field[] fields=c.getDeclaredFields();
        for(Field f:fields){
            System.out.println("遍历: "+f.getName());//遍历所有属性存在
        }
        Field f1=c.getField("column1");//直接获取报错
        System.out.println("直接获取: "+f1.getName());
    } catch (Exception e) {
        e.printStackTrace();
    }
}

}

控制台输出:
遍历: column1
遍历: column2
java.lang.NoSuchFieldException: column1
at java.lang.Class.getField(Class.java:1520)
at test.Test2.main(Test2.java:30)

解决方案

http://blog.sina.com.cn/s/blog_3f69372d0100ar4t.html
私有的需要调用 字段.setAccessible(true);

解决方案二:

java反射获取类的属性名和属性值

时间: 2024-12-28 13:28:42

JAVA反射獲取屬性名報錯的相关文章

Java反射根据不同方法名动态调用不同的方法(实例)_java

list页面的字段要求可以根据用户的喜好进行排序,所以每个用户的字段都对应着不同的顺序(字段顺序存数据库),我们从数据库里取出来的值是对象,但是前台传值是用的ajax和json array,所以就面临着一个对象到json的转换问题:1. 每个用户的字段顺序不固定,代码不能写死, 2. 根据用户字段顺序去取值,如果用if判断每个值然后调用不同的方法,if条件语句太多.然后就看了下反射. Model 类,跟正常model一样 public class Person { private String

java反射拼接方法名动态执行方法实例_java

近期由于负责项目的一个模块,该模块下有很多分类,每个分类都有一个编码code,这个值是作为一个参数携带过来的.但是每个code确实对应一个方法的. code的值有很多个,自己又不想做ifelse或者switch判断于是就狂搜资料,主要让我发现利用java的反射机制可以完美的解决这个问题 测试代码如下:(可以携带多个参数哦) package com.escs.xmlutils; import java.lang.reflect.Method; public class Test { public

java 比较Map里每个key的value,獲取相同value的key

问题描述 例如有一條HashMap = {a=1,b=2,c=1}我想獲取相同value的key,也就是a和c有啥辦法?麻煩大家~ 问题补充:OpenMind 写道 解决方案 你看一下这个import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;public class MapTest {public static

使用Java反射(Reflect)、自定义注解(Customer Annotation)生成简单SQL语句

使用Java反射(Reflect).自定义注解(Customer Annotation)生成简单SQL语句 这次给大家介绍一下在Java开发过程中 使用自定义注解开发: 主要知识点:             1.反射            主要用于提取注解信息             2.自定义异常  主要是为了自己自定义一个异常信息             3.自定义注解  本次重点 学会如何自定义注解以及如何使用反射提取注解信息运用到实际开发 下图表示在Java中注解的含义以及注解的分类和如

Java反射机制的学习

Java反射机制是Java语言被视为准动态语言的关键性质.Java反射机制的核心就是允许在运行时通过Java Reflection APIs来取得已知名字的class类的相关信息,动态地生成此类,并调用其方法或修改其域(甚至是本身声明为private的域或方法). 也许你使用Java已经很长时间了,可是几乎不会用到Java反射机制.你会嗤之以鼻地告诉我,Java反射机制没啥用.或许在J2EE.J2SE等平台,Java反射机制没啥用(具体我也不了解,不多做评论),但是在Android应用开发中,该

笔记 - Java 反射

通过Java反射,可以实现以下功能:     > 在运行时判断任意一个对象所属的类     > 在运行时构造任意一个类的对象     > 在运行时判断任意一个类所具有的方法和属性     > 在运行时调用任意一个对象的方法 反射常用API:     > Class类:反射的核心类,反射所有的操作都是围绕该类来生成的,通过Class类,可以获取类的属性,方法等内容信息.     > Field类:表示该类的属性(字段),可以获取和设置类中属性的值.     > Me

Java反射探索研究(转)

         林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankakay           摘要:本文详细深入讲解是Java中反射的机制,并介绍了如何通过反射来生成对象.调用函数.取得字段.设置字段的方法.最后,给出了一些反射常用到的实例. 一.反射 (1)概念 反射含义:可以获取正在运行的Java对象.(2)功能        1)在运行时判断任意一个对象所属的类        2)在运行时构造任意一个类的对象        3) 在运行时

Java反射机制详解_java

本文较为详细的分析了Java反射机制.分享给大家供大家参考,具体如下: 一.预先需要掌握的知识(java虚拟机) java虚拟机的方法区: java虚拟机有一个运行时数据区,这个数据区又被分为方法区,堆区和栈区,我们这里需要了解的主要是方法区.方法区的主要作用是存储被装载的类 的类型信息,当java虚拟机装载某个类型的时候,需要类装载器定位相应的class文件,然后将其读入到java虚拟机中,紧接着虚拟机提取class 中的类型信息,将这些信息存储到方法区中.这些信息主要包括: 1.这个类型的全

Java反射机制的实现详解_java

很多主流框架都使用了反射技术.像ssh框架都采用两种技术 xml做配置文件+反射技术. 与反射有关的类包. java.lang.reflect.*;和java.lang.Class; Java中所有类型(包括基本类型)都对应一个Class对象,这个Class就是java.lang.Class.即每一个类型,在Class中都有一个Class对象跟它对应.Class 没有公共构造方法.注意不是没有,是没有公共的. 如何获得Class对象 复制代码 代码如下: .针对每一个对象.getCalss(),