怎么用java在主类中调用另一个类的私有方法

如题所述

//测试类
class MyTest {

    public void publicMethod(Object o) {
        System.out.println("调用的公共方法 " + o);
    }

    /**
     * 类的私有方法
     */
    private void privateMethod(Object o) {
        System.out.println("调用了私有方法 " + o);
    }

}

新建main方法

import java.lang.reflect.Method;


public class ReflectionTest {

    public static void main(String args[]) throws Exception{

        MyTest myTest = new MyTest();

        // 调用公共方法
        myTest.publicMethod("传入参数");
        // 编译报错
        // myTest.privateMethod();

        // 获得类的私有方法
        Method method = MyTest.class.getDeclaredMethod("privateMethod",Object.class);
        // 开启私有访问权限
        method.setAccessible(true);
        method.invoke(myTest,"传入参数");

    }
}

只能通过反射才能调用私有方法

温馨提示:内容为网友见解,仅供参考
无其他回答

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

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

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

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

java 在一个类中引用另一个类已经定义的对象
一般来说,JAVA有种专门的处理方法,那就是内部类!其实说白了,就是把一个类写在另一个类的内部 譬如 class stu1{ private TextField text = new TextField(20);class stu2{ public void set(){ text.setText("abcd");} } 由于JAVA是面向对象的,所以一般我们不会让外部自由访问类内成员,...

Java如何在一个类中引用另一个类的成员变量和方法
String name;public Student(){} public Student(String id,String name){ this.id = id;this.name = name;} } === public class Test(){ String ids;String names;public static void main(String[] args){ Test test = new Test();Student stu = new Student("001","jack");test.ids...

怎么在一个java程序里调用另一个java程序?
先把2个文件放在同一个包下面,这样就可以访问另一个java程序了。一般的方法是在A程序里实例化B类,然后通过B.方法名 去调用B类里的方法 Runtime.getRuntime().exec("外部程序");相当于你在cmd控制台中输入"外部程序"并回车执行

关于java编程的问题:一个类调用另一个类中构造方法中所定义的参数。
静态构造函数不允许携带参数,即一个类中只允许有一个静态构造函数。它在第一次访问静态成员或者第一次实例化动态该类的对象之前调用。关于Java中构造方法的问题 可以,一般都用,单例用private java中一个类想调用另一个类中定义的面板怎么调用 将主面板传递给一个类,在这个类中将主面板上的将你想要...

java中一个类想调用另一个类的变量,必须到方法里面吗,直接在类里面能不...
java 不能在类中初始化引用,所以不能直接在类中new一个对象出来,要使用其他类的变量,必须在自己的类的方法中先创建被引用类的实例,通过实例来引用该类的变量,但是,如果被引用的类的变量是静态的,则可以通过如下指令引用:类名.变量 来直接引用这个变量。

相似回答