java - 使用反射检索对象的类名

标签 java class object reflection import

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Member;
import static java.lang.System.out;

public class TryReflection {

    public TryReflection() {
        int a = 0;
    }

    public static int getMax() {

        int max = 0;
        return max;
    }

    public static void main(String[] args) {

        TryReflection myObject = new TryReflection();

        int ret = myObject.getMax();
        System.out.printf("max is %d\n", ret);

        Method[] methods = myObject.class.getMethods();
        // for(Method method:methods) {
        // System.out.println("method = " + method.getName());
        // }

    }

}

我不明白为什么在编译上面的代码时会出现以下错误。

TryReflection.java:31: error: cannot find symbol
    Method[] methods = myObject.class.getMethods();
                       ^
  symbol:   class myObject
  location: class TryReflection
1 error

最佳答案

myObject 是类的实例,因此您应该使用myObject.getClass()。或者,只需调用 TryReflection.class

关于java - 使用反射检索对象的类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25464700/

相关文章:

java - Java 类的公共(public)成员和 protected 成员的访问权限及其区别?

C++ 将引用传递给同一类中的函数

c++ - 应该如何构建基本的类层次结构?

php - 递归列表函数

javascript - 从找到匹配项的数组中删除对象时遇到问题

java - 声明类级变量 JAVA

java - Jersey JAXRS 过滤器,在访问资源(Web 服务)之前提供未编码的实体

java - 使用实现 Comparator 作为参数的类时出现问题

java - android 和原生 android(Android NDK) 有什么区别?

Javascript如何查找数组中对象的位置