`

java反射的field.get(null)

 
阅读更多
在java的反射中,通过字段获取对象,是通过
public Object get(Object obj)


字段不是静态字段的话,要传入反射类的对象.如果传null是会报
java.lang.NullPointerException

但是如果字段是静态字段的话,传入任何对象都是可以的,包括null

下面是例子
:

package com.huangyunbin;

import java.lang.reflect.Field;

public class FiledTest
{
    public static void main(String[] args) throws Exception
    {
        Field field=A.class.getDeclaredField("fild");
        int a= (Integer)field.get(new A()) ;
//        int c= (Integer)field.get(null) ; //不是静态字段不能传null
        System.out.println(a);

        Field staticfield=A.class.getDeclaredField("staticFild");
        int b= (Integer)staticfield.get("") ;
        int d= (Integer)staticfield.get(null) ;
        System.out.println(b);
        System.out.println(d);
    }

}

class A {
     int fild=3;
    static int staticFild=4;
}


结果是
3
4
4
分享到:
评论

相关推荐

    Java 反射(Reflection) 经典实用例子

    Java提供了一套机制来动态执行方法和构造方法,以及数组操作等,这套机制就叫——反射。反射机制是如今很多流行框架的实现基础,其中包括Spring、Hibernate等。原理性的问题不是本文的重点,接下来让我们在实例中...

    java Reflection 反射机制 反编译

    import java.lang.reflect.Field; import java.lang.reflect.Method; import java.lang.reflect.Modifier; public class ReflectionTest { public static void main(String[] args) { Class c = null; try { ...

    Java 高级特性.doc

    Constructor constructor = Class.forName("java.lang.String").getConstructor(StringBuffer.class); String str = (String)constructor.newInstance(new StringBuffer("abc")); System.out.println(str); ...

    day021-反射和注解笔记和代码.rar

    Object object = field.get(null);//字段country取值 System.out.println(object); 2. 注解: 1.概念: 就是一个标签,有标签后,就具有某一些标签的特性。 本质就是跟类、接口、枚举...

    eclipse安卓开发必备工具

    Constructor、Field、Method都是继承于AccessibleObject,对应实例调用 setAccessible(true)就关闭该开关 如上面的例子,在代码 cts[i].newInstance(null);行前调用上述方法: cts[i].setAccessible(true); 这样就...

    Java学习笔记-个人整理的

    {10.1.1}Field}{145}{subsection.10.1.1} {10.1.2}Method}{145}{subsection.10.1.2} {10.1.3}Constructor}{145}{subsection.10.1.3} {10.2}其他Java相关}{146}{section.10.2} {11}项目}{148}{chapter.11} {...

    springmybatis

    MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录. orm工具的基本思想 无论是用过的hibernate,mybatis,你都可以法相他们有一个...

    Lua解析器mLua.zip

    methodName, ...)调用一个Java的实例方法getStatic(className, fieldName)获取一个java的静态字段setStatic(className, fieldName, value)设置一个java的静态字段get(receiver, fieldName)获取一个java的实例字段...

    Java解惑(谜题)CHM中英文双版本

    Puzzle 48: All I Get Is Static Puzzle 49: Larger Than Life Puzzle 50: Not Your Type Puzzle 51: What's the Point? Puzzle 52: Sum Fun Puzzle 53: Do Your Thing Puzzle 54: Null and Void ...

    Android渠道打包工具packer-ng-plugin.zip

    }读取APK文件,由于这个库 packer-helper 需要同时给Gradle插件和Android项目使用,所以不能添加Android相关的依赖,但是又需要读取自身APK文件的路径,使用反射实现:// for android code private static ...

Global site tag (gtag.js) - Google Analytics