美文网首页
Java面试反射

Java面试反射

作者: pr0metheus | 来源:发表于2018-03-25 12:48 被阅读0次

有如下代码:

public class ReflectTest {

    private String name = "hello";
    
    public String getName() {
        return name;
    }
}

根据上述代码问是否可以修改ReflectTest对象的name值?

答案:可以。我们可以通过反射来修改对象的私有属性值具体代码如下:

public class ReflectTestMain {

    public static void main(String[] args) throws Exception {
        ReflectTest rt = new ReflectTest();
        Class<?> cls = ReflectTest.class;
        Field name = cls.getDeclaredField("name");
        name.setAccessible(true); //在设置私有属性值之前要压制访问权限的检查否则会报java.lang.IllegalAccessException
        name.set(rt, "oneTarget");
        System.out.println(rt.getName());
    }
}

补充知识点:

获得某个类的class对象的四种方式:

  • 通过类名.class的方式
  • 通过类的对象.getClass()的方式
  • 通过Class.forName的方式
  • 如果是基本数据类型的包装类那么还可以通过包装类.TYPE的方式

相关文章

  • 博客地址

    java注解-01、java注解-02、Git面试资源java反射-01、java反射-02、java反射-03为...

  • Java高级题

    此文非原创,来源网络上的面试题 Java中的反射 1.说说你对Java中反射的理解 java中的反射首先是能够获取...

  • Java面试题

    Java面试 Java、框架、JVM Java 基础、容器、多线程、反射、对象拷贝、Java web模块、异常模块...

  • Java 面试 - 反射

    什么是Java 的反射机制答:在运行状态中,对于任意一个类,可以获取它的有属性和方法;对于任意一个对象,都能调用它...

  • Java面试反射

    有如下代码: 根据上述代码问是否可以修改ReflectTest对象的name值? 答案:可以。我们可以通过反射来修...

  • Android相关面试题

    面试过程中遇到的题集,都会摘要记录下来 一,Java部分 1.什么是反射? Java反射机制基础详解 2.反射的实...

  • 十年阿里把关生涯,留下一纸Java核心面试知识

    所谓的Java核心面试知识不止包含JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数...

  • 反射API

    反射API 前言 在面试中,经常会被问到在Java反射中Class.forName()加载类和使用ClassLoa...

  • 面试:java反射机制

    JAVA语言编译之后会生成一个.class文件,反射就是通过字节码文件找到某一个类、类中的方法以及属性等。 换言之...

  • Android Review

    java相关 java基础面试题 四种引用对比 List,Set,Map 详解 反射 JNI JNI 各版本特性 ...

网友评论

      本文标题:Java面试反射

      本文链接:https://www.haomeiwen.com/subject/uuphcftx.html