gpt4 book ai didi

java - 使用反射的 IllegalAccessException

转载 作者:太空狗 更新时间:2023-10-29 23:00:18 25 4
gpt4 key购买 nike

我在尝试学习反射时遇到了这个 IllegalAccessException。请看下面的代码:

public class ReflectionTest
{
public static void main(String[] args)
{
Set<String> myStr = new HashSet<String>();
myStr.add("obj1");
Iterator itr = myStr.iterator();
Method mtd = itr.getClass().getMethod("hasNext");
System.out.println(m.invoke(it));
}
}

当我尝试运行这个程序时,我得到了以下信息:

Exception in thread "main" IllegalAccessException

我不明白这是怎么回事。有任何想法吗?提前致谢。

最佳答案

麻烦的代码是这样的:

itr.getClass().getMethod

您可能希望在 Iterator 类上使用 hasNext。您编写的是 HashMap.KeyIterator 类,根据 Java 语言访问说明符(或者至少是反射使用的 JDK 1.0 的粗略解释),您的代码无法使用该类。

改用:

Iterator.class.getMethod

(如果不是出于学习目的,请远离反射(reflection)。)

关于java - 使用反射的 IllegalAccessException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5184284/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com