java中, 怎么调用别的类的私有方法?

java中, 怎么调用别的类的私有方法.比如A类中有一个private void method()方法, B类中如何调用?

  利用反射即可调用;
简易实例代码如下:
  import java.lang.reflect.InvocationTargetException;
  import java.lang.reflect.Method;

  /**
  * @author thomaslwq
  * @version 创建时间:Sep 4, 2012 9:53:49 PM
  * 类说明
  */
  public class ReflectionTest {
  
  public static void setObjectColor(Object obj) throws SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAcces***ception, InvocationTargetException{
  Class cls = obj.getClass();
  //获得类的私有方法
  Method method = cls.getDeclaredMethod("privateMethod", null);
  method.setAccessible(true); //没有设置就会报错
  //调用该方法
  method.invoke(obj, null);
  }
  public static void main(String args[]) throws SecurityException, IllegalArgumentException, NoSuchMethodException, IllegalAcces***ception, InvocationTargetException{
  
  setObjectColor(new MyTest());
  }
  }
  //测试类
  class MyTest{
  
  
  public void setMyTest(){
  System.out.println("setMyTest");
  }
  /**
  类的私有方法
  **/
  private void privateMethod(){
  System.out.println("调用了 private Method");
  }
  
  }
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-08-05
可以通过反射的方法首先通过 Class c = Class.forName("A");然后Method m = c.getDeclaredMethod("method"); 再设置方法可见. m.setAccessible(true);最后 m.invoke(c.newInstance(), null);反射可以拿到类的所有方法, 只是有些可见有些不可见. 希望能帮助你。本回答被网友采纳
第2个回答  2013-08-05
改成
public void method()

私有是本类访问,其他类怎么都无法访问到的。本回答被网友采纳
第3个回答  2015-08-26
私有方法只有本类可以用,你可以继承重写这个方法。

java中, 怎么调用别的类的私有方法?
利用反射即可调用;简易实例代码如下:import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;\/ author thomaslwq version 创建时间:Sep 4, 2012 9:53:49 PM 类说明 \/ public class ReflectionTest { public static void setObjectColor(Object obj) throws SecurityException,...

java怎么调用另一个类的方法?
Java中的一个类怎么调用另一个类中的方法1、java类有两种方法一种是类方法就是用static修饰的,一种是实例方法,就是没有static修饰的方法。类方法可以同时类名.方法名的方式调用。而实例方法必须先生存类的实例在通过实例.方法名的方式调用。2、如果有访问权限的话,可以调用该类的静态方法(不同包...

Java中的一个类怎么调用另一个类中的方法?
java类有两种方法一种是类方法就是用static修饰的,一种是实例方法,就是没有static修饰的方法。类方法可以同时类名.方法名的方式调用。而实例方法必须先生存类的实例在通过实例.方法名的方式调用。如果另一个类中的那个方法是私有的话,就不能直接调用到,如果是其他类型的话看情况,如果是静态的(sta...

在一个类中如何调用另一个类的私有方法
用private修饰的方法,那是私有的..不管你外部哪里如何调用都不行的.这个都是jdk规定死的.公有方法可以调用..就好比你媳妇和你身上的钱.都很重要..钱可以借别人用用..媳妇能借么?对吧.哪怕是父母兄弟.该借的能借.不能借的打死接不到..当然.这私有方法就和媳妇一样..不管是谁..就是java他爸...

java内部类可以访问外部类的静态方法吗
直接访问 外部变量 ,外部类不能直接访问内部类变量,必须通过创建内部类实例的方法访问,new InnerClass (32).m就是创建内部类实例访问内部类成员变量。你 想不通 的肯定是指内部类的私有变量 怎么可以 被外部类访问吧,按常规,私有变量m只能在InnerClass里被访问,但你要注意,内部类就相当于一个...

关于java编程的问题:一个类调用另一个类中构造方法中所定义的参数。
关于Java中构造方法的问题 可以,一般都用,单例用private java中一个类想调用另一个类中定义的面板怎么调用 将主面板传递给一个类,在这个类中将主面板上的将你想要的面板一层一层剥下来,并获得它,然后在你想要的面板上做操作。注意:主面板上放的是一个ponent数组 在类中的构造方法修改一变量,...

JAVA一个包里建立好两个类,一个类如何调用另一类的里的数据?
1、先在eclipse中创建一个Java工程文件。并在src下创建demo包,在demo包下创建类DemoClass。2、接下来在DemoClass类中添加一个静态属性和静态方法。被static修饰的属性或方法就是静态的。3、对于静态方法的调用,可以使用调用非静态方法的方式去调用,即创建一个类的对象,然后再调用静态方法。4、编辑好...

JAVA 中外部类可以访问非静态内部类的私有属性???
1、创建一个Bean1类,并建好两个私有变量和构造方法。2、创建一个Bean2类,引入对应包,创建好main 方法。3、创建 Class<?> clazz = Class.forName("test.Bean1")。4、创建Bean1 bean = (Bean1) clazz.newInstance();Field[] fs = clazz.getDeclaredFields()。5、创建for (Field field : ...

java类中方法private怎么调用
私有方法,类外部是无法调用的,解决方法,一,修改为public方法,而,在类内部再添加一个public方法,该方法去调用私有,这样就不用改动到原方法了

java private私有属性怎么在子类中访问
private属性是私有的,在子类是无法访问的。如果必须要访问,可以采用反射的方法,获取父类的class,然后拿到field,再然后setAccessible=true来进行访问。

相似回答