关于java的反射的一个问题

问题描述

问题是这样:我在一个方法读取xml文件,因为想实现自动返回数据类型集合对象(传入Class<T>.,返回ArrayList<T>),所以用到了反射,但是我在创建对象时,定义为Ttemp=null;在进行调试时,局部变量无法找到这么对象,其他的都能找到,而用Class.newInstance创建对象之后,下一步动作就能查看temp对象的属性等(局部变量列表有这个对象),但是到用field.set()时,这个对象就找不到了(鼠标移上去显示的定义,局部变量列表也没有这个对象),然后就抛出异常accesstofieldnotallowed,请问一下这是什么问题?

解决方案

解决方案二:
1.完全不明白你在说什么2.泛型只存在于编译期3,你还是贴代码大家会明白点
解决方案三:
你的那个字段是不是private?field.setAccessible(true);
解决方案四:
具体代码是什么?
解决方案五:
看下你的字段是什么修饰符。
解决方案六:
听不懂,贴代码吧!

时间: 2024-09-07 07:37:29

关于java的反射的一个问题的相关文章

Java中反射的一个简单使用_java

简介 首先介绍一些不太实用的解释:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意方法和属性:这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制. 简单使用 反射,在java中是非常常见和好用的一种方式,(但是大家需要知道,他的效率是比较低的,所以要慎用)当然在基于java语言而产生的Android中也是可以使用的,我们可以使用反射来获取一些系统并不开放,但是存在的类,从而调用他的一些方法,下面就简单的写一下

Java中反射获取私有构造函数、属性、方法

在学习Spring框架基础 Bean包时,写了一个简单的例子,类似如下: package study.spring.bean; public class SimpleBean { private String beanName; private SimpleBean() { System.out.println( " SimpleBean " ); } /** */ /** * @return Returns the beanName. */ public String getBean

JAVA核心层--反射--动态代理

本文发表于2010年,时间较早,部分问题解释不是十分准确,所以需要进一步了解,请参看2012年版本: java之架构基础-动态代理&cglib 要在JAVA技术上突破普通的层面,并拥有一翻设计理念的高度,除了要有很好的设计思维之外,反射在适当的使用下,将会把框架做得非常清晰,并且代码编写也非常简便. 在面向对象的编程中,我们为什么要忌讳去大量使用if else switch语句,因为这样写是将逻辑硬编码了,JAVA的思想就是将其配置化,一旦可配置化后,就逐渐可管理化,并随着产品的成熟逐步实现自动

Groovy探索之对Java语言反射的简化

Java语言的反射功能是我们不得不使用的功能,但事实上它的使用是相当繁琐却在功能上比较单一的一个功能. 例如,我们使用Java语言反射最多的地方是在运行时对POJO对象或者Domain对象的"set"和"get"方法的调用,因为对象属性是私有的,获取和设置对象属性的值是通过对应的"get"和"set"方法进行的.下面是一个关于"get"方法调用的例子: public static Object getFie

【Java】java使用反射访问对象方法和成员变量

虽然java是一门静态语言,但是java的反射机制却给java提供了很强大的动态特性,其特点是能让java支持在运行时才能得知名称与内部结构的类,并能访问其所有的方法和成员变量,包括私有方法和私有成员变量.下面我写了一个比较简洁的测试代码,供参考和使用. 测试类 //OBClass.java package com.obo.javaassistdemo; public class OBClass { public int publicField= 999; private int private

Java通过反射实例化泛型类的问题

问题描述 Java语言中,想通过反射实例化一个抽象类的子类,问题也可以简化点,可以建个类继承这个抽象类,然后实例化子类.public abstract class MyClass<T> { MyClass() { }}在代码中可以这么写:new MyClass<String>() {}但是如果通过反射,怎么把String这个type传进去,或者通过反射获得constructor,怎么把泛型信息传进去:下面这个是个错误的写法,只是说明要实现的内容:new MyClass<Cla

java-关于Java泛型反射问题

问题描述 关于Java泛型反射问题 public static void main(String[] args) { //告诉编译器我这个集合只能存储String类型的 List col=new ArrayList(); //告诉编译器我这个集合只能存储Integer类型的 List<Integer> col2=new ArrayList<Integer>(); //输出结果为:true //这就是常说的去除,编译后jvm虚拟机不会知道这个集合存储什么类型的值 System.out

如何通过java的反射 修改对象的属性的值

问题描述 我想写一个方法,对一个对象的值进行修改,例如:有一个对象叫user,里面有name,age,两个属性,想在实例化对象,new user("a","1");我想用一个方法,只要传入参数的名字,就能修改参数的值,例如:传入age和"1岁",把原来的对象修改为user("a","1岁"):不要调用对象的set方法,利用java的反射 应该怎么写呢? 小弟在此谢过,求解! 问题补充:楼主不会是曹同学吧 -

java的反射机制的问题

问题描述 java的反射机制的问题 111111111111111111111111111111111111111111111 解决方案 反射机制,好像是这样子,在public类里我创建了一个接口,可惜,我都不知道我什么时候用它,所以我就不初始化它了,突然有一天,我要初始化他一次,于是我就用反射机制来给它初始化一下.不知道对不对? 解决方案二: java反射机制及性能优化问题Java进阶(六)Java反射机制可恶问题NoSuchFieldExceptionJAVA中的反射机制 解决方案三: 这个