`
pangxin12345
  • 浏览: 190043 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java反射笔记

    博客分类:
  • java
阅读更多

package com.tjpu.helen.test;

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;

import com.sun.java_cup.internal.internal_error;

public class TestReflect {

    public static void main(String[] args) throws Exception{
        String str1="abc";
        Class cls1=str1.getClass();
        Class cls2=String.class;
        Class cls3=Class.forName("java.lang.String");
        System.out.println(cls1==cls2);
        System.out.println(cls1==cls3);
        //判断是否为基本类型
        System.out.println(cls1.isPrimitive());
        //int是基本类型
        System.out.println(int.class.isPrimitive());
        //true
        System.out.println(int.class==Integer.TYPE);
        //false
        System.out.println(int.class==Integer.class);
       
        //int数组不是基本类型
        System.out.println(int[].class.isPrimitive());
        //int数组时数组
        System.out.println(int[].class.isArray());
        //int是基本类型
        System.out.println(int.class.isPrimitive());
       
        System.out.println("------------------------------------");
        //获得方法是需要类型
        Constructor constructor1=String.class.getConstructor(StringBuffer.class);
        String str2=(String)constructor1.newInstance(new StringBuffer("abc"));
        System.out.println(str2);
       
        String str3=(String)Class.forName("java.lang.String").newInstance();
       
        ReflectPoint ref1=new ReflectPoint(3,5);
        //仅仅代码字节码字段
        Field fieldy=ref1.getClass().getField("y");
        //他不知道是哪个对象的y,fieldy
        System.out.println(fieldy.get(ref1));
        //暴力反射  只要用于对私有成员变量
        Field fieldx=ref1.getClass().getDeclaredField("x");
        fieldx.setAccessible(true);
        System.out.println(fieldx.get(ref1));
        //利用反射循环改变字段值
        Field[] fields=ref1.getClass().getFields();
        for(Field field:fields){
            if(field.getType()==String.class){
                String oldValue=(String)field.get(ref1);
                String newValue=oldValue.replace("b", "a");
                field.set(ref1,newValue);
            }
        }
        System.out.println(ref1.str1);
        System.out.println(ref1.str2);
        System.out.println(ref1.str3);
       
    }
}

 

 

package com.tjpu.helen.test;

public class ReflectPoint {
    private int x;
    public int y;
    public String str1="abcdb";
    public String str2="basktball";
    public String str3="itcast";
    public ReflectPoint(int x, int y) {
        super();
        this.x = x;
        this.y = y;
    }
   
}

分享到:
评论

相关推荐

    JAVA反射笔记 md格式

    Java反射是Java编程语言中的一个强大特性,它允许运行时的程序访问并操作类、接口、字段和方法等对象,即使这些对象在编译时并未知。这为开发者提供了动态性,可以处理未知类型的对象,或者在运行时发现和调用类的...

    Java反射笔记源代码

    Java反射是Java编程语言中的一个强大特性,它允许程序在运行时检查类、接口、字段和方法的信息,并能动态地创建对象和调用方法。在深入理解Java反射之前,我们首先要明白,它属于元编程的一部分,即在编写程序时能够...

    Java反射笔记

    Java反射是Java编程语言的一个重要特性,它允许程序在运行时检查和操作对象的内部属性,包括类名、父类、接口、方法、构造器以及字段。反射机制为Java提供了强大的动态性,使得代码能够在运行时发现并调用类的方法,...

    java注解和反射的个人学习笔记

    java注解和反射的个人学习笔记

    java学习笔记java反射机制

    java学习笔记java反射机制

    JAVA 私塾笔记整理——反射机制(Reflection)

    Java反射机制是Java编程语言中的一个强大特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。这个特性使得Java具有了高度的灵活性和动态性,尤其是在处理对象、类、接口以及它们之间的关系...

    java学习笔记(java 反射机制 流 内存管理)

    本笔记主要涵盖了四个核心知识点:Java反射机制、流(I/O流)、内存管理和Java学习的基础。以下是对这些主题的详细阐述: 一、Java反射机制 Java反射机制是Java语言的一个强大特性,允许程序在运行时检查类、接口、...

    Java反射机制笔记(简单易懂)

    Java反射机制笔记 Java反射机制是Java语言中一个强大的功能,它允许程序在运行时检查和修改其自身的结构和行为。通过Java反射机制,我们可以在运行时获取类的信息,包括类的成员变量、方法、构造方法等,并可以动态...

    早期自学java反射知识笔记

    "Java 反射机制详解" Java 反射机制是 Java 语言中的一种强大功能,允许程序在运行时检查和修改自身的结构和行为。它主要用于动态的创建对象、调用方法和访问属性等。 ### Java 反射机制的定义 Java 反射机制是指...

    java学习笔记markdown

    8. **反射机制**:探讨Java反射API的使用,包括动态获取类信息、创建对象、调用方法等功能,这对于理解和调试程序有很大的帮助。 9. **JVM内部机制**:简述Java虚拟机的工作原理,包括类加载、内存管理、垃圾回收...

    java全套笔记 来自狂神说java笔录.zip

    【Java编程语言基础】 Java是一种广泛使用的面向对象的编程...这些笔记内容全面覆盖了Java的基础和进阶知识,适合从零开始学习Java的人群,通过系统学习,可以建立起扎实的Java编程基础,为实战项目开发打下坚实基础。

    Java基础 学习笔记 Markdownr版

    本学习笔记主要涵盖了Java的基础知识,包括面向对象、集合、IO流、多线程、反射与动态代理以及Java 8的新特性等方面,旨在帮助初学者或有经验的开发者巩固和提升Java编程技能。 1. 面向对象(OOP):Java的核心是...

    Java-反射笔记.pdf

    本笔记将深入探讨Java反射的原理、用途以及如何使用。 一、反射的概念与作用 反射是Java提供的一种能力,它允许程序在运行时动态地获取类的信息(如类名、方法名、参数类型等)并调用这些方法。这种动态性使得Java...

    java反射与动态代理笔记

    Java反射和动态代理是Java编程中的重要特性,它们在实现高度灵活和动态的代码执行方面发挥着关键作用。本文将深入探讨这两个概念及其在实际开发中的应用。 **Java反射** Java反射API允许程序在运行时检查类、接口...

    JAVA学习笔记 林信良

    《JAVA学习笔记》是林信良先生的一部深入浅出的Java编程教程,旨在帮助初学者和有一定经验的开发者巩固和提升Java编程技能。这本书涵盖了Java语言的基础到高级概念,是一份宝贵的自学资料。 首先,从基础部分开始,...

    java学习——java中的反射学习笔记.rar_java 反射

    本篇笔记将深入探讨Java反射的概念、重要性以及如何使用。 一、反射基础 1. 类加载:当Java虚拟机(JVM)加载一个类时,它会创建该类的Class对象。这个对象包含了关于类的所有信息,包括方法、字段、构造器等。...

    达内Java_笔记整理.rar_Java 达内笔记_Java笔记_java 笔记_笔记_达内

    对于Java SE中的高级特性,例如反射、注解、动态代理等,笔记可能也会有详细讲解。这些特性使得Java具备了强大的元编程能力,可以用于实现许多复杂的设计模式。 除此之外,如果这份笔记还包含Java EE部分,那么Web...

    java笔记.zip

    尚硅谷康师傅java学习笔记。 、2020-4-5 java学习笔记 2020-4-6 java笔记 ---内部类 2020-4-6 java笔记 ---异常 2020-4-6 java笔记 --多线程 ...2020-4-21 java反射 2020-4-22 java8 新特性 2020-4-27 单元测试

Global site tag (gtag.js) - Google Analytics