JAVA怎么不创建实例来获取类里面属性值的问题 java实例类 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个从根本上就有问题了,java是纯面向对象的语言,没有对象怎么访问其他的属性方法呢?就算是反射也只能拿到属性的类型,名称等等基本信息而已,不可能拿到属性值,这个是java的特性,如果实现了你的这种需求那就要修改java语言的特性了,是不是不太可能实现呢?而且java的属性取值是通过get方法,不是直接取,就算是通过反射也是只能通过get方法取值,不是其他方式,所以楼主提的这个问题似乎是要颠覆java的特性啊。 没有实例 就没有实例字段。java 可以直接读写内存的,前提是你要先创建 静态的就可以 否则一边玩去 因为你破坏了开发Java的人的原则 呵呵,从学java进入面向对象就开始要建立面向对象的思想,楼主这是要闹哪样?普通成员是依托对象而存在的,不然只是一堆描述性信息,说白了就是朦胧的,请问怎么获取朦脓的信息呢?将朦胧的实例化,看见的摸得着你才能够想办法得到! public String name = "testInfo";标示为静态的public static String name = "testInfo";在TestReflct类中直接调用System.out.println(UserInfo.name) 不行。http://stackoverflow.com/questions/14773642/using-reflection-to-get-the-initialization-value-of-a-field 要想不创建实例获得属性 加上static就可以哦嘛 谢谢大家的回复,我已经知道了。这个是实例变量,需要通过创建实例来创建的。如果改成静态的变量就可以了,因为静态变量在编译的时候就已经分配内存初始化了,所以静态变量的话是可以获取到的,如下:public class TestStaticReflct { public static void main(String[] args) throws Exception { Class cls = Class.forName("com.net.test.reflct.TestStatic"); Field[] field = cls.getDeclaredFields(); for (int i = 0; i < field.length; i++) { String fname = field[i].getName(); System.out.println(fname + "属性类型:" + field[i].getModifiers()); //判断是否是静态属性 if(Modifier.isStatic(field[i].getModifiers())){ System.out.println(fname + ":" + field[i].get(null)); } } }} 出现什么问题了,急,万分感谢 关于动态实例化java类的问题(大家帮帮忙) 又迷茫了 只有60分全给了 [计算机.程序设计]重构.pdf 100分求解决方案:用POI的HSSF写excel的问题:数据条数多的时候,会产生outofmemory错误~ 看一下撒 继承object类的clone方法,为什么要写为super.clone()? 来看看呀呀 我想提一些关于硬件(路由器、ATM交换机、网络通信)的问题,有没有类似csdn这样的网站,提供线索者有分! 请教一下苹果上java的URL编码问题 初学者关于java的自增自减问题。。 父类的子类实现很多,怎么管理父子类之间的关系更方便
http://stackoverflow.com/questions/14773642/using-reflection-to-get-the-initialization-value-of-a-field
谢谢大家的回复,我已经知道了。这个是实例变量,需要通过创建实例来创建的。如果改成静态的变量就可以了,因为静态变量在编译的时候就已经分配内存初始化了,所以静态变量的话是可以获取到的,如下:public class TestStaticReflct {
public static void main(String[] args) throws Exception {
Class cls = Class.forName("com.net.test.reflct.TestStatic");
Field[] field = cls.getDeclaredFields();
for (int i = 0; i < field.length; i++) {
String fname = field[i].getName();
System.out.println(fname + "属性类型:" + field[i].getModifiers());
//判断是否是静态属性
if(Modifier.isStatic(field[i].getModifiers())){
System.out.println(fname + ":" + field[i].get(null));
}
}
}
}