当前位置: 首页 > 知识库问答 >
问题:

java反射:getMethods函数不显示方法

云承弼
2023-03-14
import java.lang.reflect.Method;
import java.util.Arrays;

public class Test
{
     public static void main(String s[]) throws ClassNotFoundException
     {
        Class cls = Class.forName("Test");
        System.out.println("Class is "+cls);
        Method[] mtds = cls.getMethods();
        System.out.println("Methods are "+Arrays.deepToString(mtds));  // not having all methods
    }

    void reflectionTestMethod()
    {
        System.out.println("test");
    }
}

类是类测试

方法有[html" target="_blank">public static void test.main(java.lang.String[])抛出java.lang.ClassNotFoundException,public final native void java.lang.Object.Wait(long)抛出java.lang.InterruptedException,public final void java.lang.Object.Wait(long,int)抛出java.lang.InterruptedException,public final void java.lang.Object.Equals(java.lang.Object.ToString(),public

为什么reflectionTestMethod()在输出中不可用?

共有1个答案

仉姚石
2023-03-14

getMethods()返回公共方法(如其在Javadoc中所述)

请尝试getDeclaredMethods()或将方法公开。

顺便说一句,您可以执行以下操作:

Class cls = Test.class;
System.out.println("Class is " + cls);
for(Method method : cls.getDeclaredMethods())
    System.out.println(method);
 类似资料:
  • 问题内容: 有人可以详细说明一下,并解释两种方法之间的区别,以及何时/为什么要在另一种方法上使用 问题答案: 包括 由类本身 声明 的 所有方法,而仅返回公共方法,还返回从基类(此处是from )继承的方法。 在和中的Javadocs中阅读有关它的更多信息。

  • 要查找函数在Laravel应用程序中的定义位置,我尝试执行以下操作: 在命名空间内: 但是得到一个错误: PHP错误:在/var/www/html/s/source/App/Http/Controllers/HomeController中找不到类“App\Http\Controllers\ReflectionFunction”。第169行的php 我甚至尝试使用全局命名空间: Reflection

  • 我试图将现有类中的静态方法添加到。所有方法都位于同一类中,代码如下: 当我运行代码时,我得到了。有什么想法吗?

  • 主要内容:1 Java8 方法参数反射的介绍,2 Method类,3 Method类的方法,4 Parameter类,5 Parameter类的方法,6 Java8 方法参数反射的案例1 Java8 方法参数反射的介绍 Java提供了一项新功能,您可以在其中获得任何方法或构造函数的形式参数的名称。java.lang.reflect包包含所有必需的类,例如Method和Parameter,可用于参数反射。 2 Method类 Method类提供有关类或接口上的单个方法的信息。反射的方法可以是类方法

  • 本文向大家介绍Java使用反射操作数组示例,包括了Java使用反射操作数组示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java使用反射操作数组。分享给大家供大家参考,具体如下: 一 实战 1 代码 2 运行 E:\Java\疯狂java讲义\codes\18\18.4>java ArrayTest1 疯狂Java讲义 轻量级Java EE企业应用实战 二 实战 1 代码 2 运行

  • 所以几天前,我安装了vscode来处理Unity游戏引擎脚本,然而,即使我安装了C#扩展,它也不会显示每个函数的参数,例如,如果我编写一个函数,vscode没有显示我应该把什么样的参数放在括号里。我怎样才能让它这样做? 比如说,在我编写的代码中,它不会显示的参数: 此外,每当我从Unity项目加载脚本时,vscode都会显示此错误: 错误图像