m0_62284963 2022-03-27 19:43 采纳率: 33.3%
浏览 59

关于java调用不同包私有方法的错误,目前才学java,希望大家细心解答一下。

问题遇到的现象和发生背景

在二个不同的包调用私有函数

问题相关代码,请勿粘贴截图

public class Text{
public static void main( String[] args)
{
//circ a1 = new circ(3);
//a1.area();
//a1.perimeter();

    rect a2 = new rect();
    a2.set_a(3);
    a2.set_b(4);

    //System.out.println("边长是"+a2.get_a()+" "+a2.get_b() );


    Class classType = a2.getClass();


    Method method = classType.getDeclareMethod("area",null);

    method.setAccessaible(true);

    method.invoke(a2,null);




    a2.perimeter();

    //tria a3 =new tria(3,4,5);
    //a3.area();
    //a3.perimeter();

    }

}

//下面是调用私有方法的另一个包里面的代码
package rect;

public class rect
{
private double a;
private double b;

public void set_a(double a)
{
if(a>0)
{
this.a=a;
}
else
System.out.println("长方形的长度输入不合法,长度是"+a);
return;
}

public void set_b(double b)
{
if(b>0)
{
this.b=b;
}
else
System.out.println("长方形的长度输入不合法,长度是"+b);
return;
}

public double get_a()
{
return this.a;
}

public double get_b()
{
return this.b;
}

/面积函数1:成功
public void area()
{
double s = this.a
this.b;
System.out.println("长方形的面积是"+s);
}
*/

private void area()
{
double s = this.a*this.b;
System.out.println("长方形的面积是"+s);
}

public    void perimeter()
    {
        double s = (this.a+this.b)*2;
        System.out.println("长方形的周长是"+s);
        }


}
运行结果及报错内容

java:24: 错误: 找不到符号
Method method = classType.getDeclareMethod("area",null);
^
符号: 方法 getDeclareMethod(String,<空值>)
位置: 类型为Class的变量 \Text.java:26: 错误: 找不到符号
method.setAccessaible(true);
^
符号: 方法 setAccessaible(boolean)
位置: 类型为Method的变量 method
\Text.java:28: 警告: 最后一个参数使用了不准确的变量类型的 varargs 方法的非 varargs 调用;
method.invoke(a2,null);
^
对于 varargs 调用, 应使用 Object
对于非 varargs 调用, 应使用 Object[], 这样也可以抑制此警告
2 个错误
1 个警告

我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

1条回答 默认 最新

  • bekote 2022-03-30 11:14
    关注

    img


    area方法public调用是被注释掉了吗?private是私有方法,不能调用

    评论

报告相同问题?

问题事件

  • 创建了问题 3月27日

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境