美文网首页JavaJVM · Java虚拟机原理 · JVM上语言·框架· 生态系统Android求生之路
Java 反射 静态变量 静态方法 静态成员 调用 获取修饰符

Java 反射 静态变量 静态方法 静态成员 调用 获取修饰符

作者: 百工之人 | 来源:发表于2020-06-24 15:43 被阅读0次

当使用Java反射机制操作类成员时,传入对象的参数改成传入null

package com.zuozuo.test;

import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;

public class TestMain {
    private static final String TAG = "VOICE_RECOG";

    public static void main(String[] args) throws Exception {
        // get static field
        Class<?> clazz = Class.forName("com.zuozuo.test.TestMain");
        Field fieldTag = clazz.getDeclaredField("TAG");
        fieldTag.setAccessible(true);
        String tag = (String)fieldTag.get(null); // null object 不要本着这道题不会但不能空着的思想new一个对象...
        System.out.println("TAG is static ? " + Modifier.isStatic(fieldTag.getModifiers()));
        System.out.println(tag);
        
        // invoke static method
        Method method = clazz.getDeclaredMethod("name", String.class);
        String output = (String)method.invoke(null, "B"); // null object
        System.out.println("name is static ? " + Modifier.isStatic(method.getModifiers()));
        System.out.println(output);
    }

    public static String name(String input) {
        if ("A".equals(input)) {
            return "_A_";
        }
        return "_B_";
    }
}

参考

jenkov

相关文章

  • java中Static修饰符静态方法为什么不能调用非静态方法或变

    结论:静态方法只能调用静态方法(或者变量),非静态方法可以调用静态方法(或者变量)原因:类的静态成员(变量或方法)...

  • Java 反射 静态变量 静态方法 静态成员 调用 获取修饰符

    当使用Java反射机制操作类成员时,传入对象的参数改成传入null 参考 jenkov

  • Java学习 Day9

    1.static(静态):修饰成员变量,成员方法,静态块。 静态变量和静态方法的调用:类名和对象名调用。调用语法:...

  • static静态变量

    1、静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员,如果希望在静态方法中调用非静态变量,可以通过...

  • static静态成员变量、成员函数的作用

      数据成员可以分为静态变量、非静态变量两种。  静态成员:静态类中的成员加入static修饰符,即是静态成员,可...

  • 内部类

    静态内部类 静态内部类只能调用静态成员变量,不能调用非静态成员变量; 成员内部类 成员内部类和成员变量类似; 局部...

  • static关键字

    在静态方法中不能访问类的非静态成员变量和非静态成员方法,因为非静态成员方法/变量都是必须依赖具体的对象才能够被调用...

  • 为什么从静态的方法里调用非静态的方法或变量是非法的?

    结论: 非静态的方法可以调用静态的方法,但是静态的方法不可以调用非静态的方法。 类的静态成员(变量和方法)属于类本...

  • 反射机制(四)操作方法

    获取方法: 调用方法 问题一答案: 使用反射调用可变参数 使用反射调用静态方法: 静态方法不属于任何对象,属于类本...

  • Java -static关键字

    Static 静态 静态:是一个修饰符,只能用来修饰成员(成员变量和成员方法) 当成员被静态修饰之后,除了可以被对...

网友评论

    本文标题:Java 反射 静态变量 静态方法 静态成员 调用 获取修饰符

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