【发布时间】:2010-10-20 20:46:01
【问题描述】:
假设我在 Java 中有一个 ClassA 类和一个 methodA 私有方法。
在我的 ClassB 类中,我有一个调用 MethodA 的主方法。显然,这应该行不通。
如果在运行时发生这种情况,我该怎么做才能引发异常或错误。
谢谢。
【问题讨论】:
-
编译器不应该允许它。其中一个是内部类吗?还是您担心有人使用反射来调用它?
-
你能举个例子吗?
假设我在 Java 中有一个 ClassA 类和一个 methodA 私有方法。
在我的 ClassB 类中,我有一个调用 MethodA 的主方法。显然,这应该行不通。
如果在运行时发生这种情况,我该怎么做才能引发异常或错误。
谢谢。
【问题讨论】:
我知道从另一个非内部类调用一个类的私有方法的唯一可能方法是借助反射。
您可以获取所有方法,设置一些可访问的私有方法并调用它们。为防止这种情况,您只需在main 方法中设置SecurityManager(谷歌进一步调查)。
如果你只是想让编译器的部分自己工作,那么没有这个必要。只需使用任何成熟的 IDE,它就会在您执行此操作后立即为您概述潜在的编译时错误。
【讨论】: