有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

返回对象的方法名的java

我有能力运行代码,让我进行计算和/或从程序中获取变量信息。然而,我无法访问基本代码,并且想知道是否有一种方法可以打印出一个对象可用的所有方法(public)

例如类形状,以及圆形和方形的子类。 如果我能打印出循环的方法,我可能会看到:

.getRadius()
.setRadius(newValue)

但是Square会

 .getSide()
 .setSide(newValue)

我有一个我知道我能找到的对象

myObject[1].GetLength()
myObject[1].getDimUom()
myObject[1].getQuantity().getValue()

然而,我不知道我只能设置某些东西,比如(通过尝试和错误)

myObject[1].setClass(newValue)

所以我希望能够找到一种方法,从一个对象打印出方法名;同样没有任何查看或修改基本代码的能力(比如添加反射)


共 (1) 个答案

  1. # 1 楼答案

    你基本上想要的是阻止信息隐藏,这是OOP中最基本的原则

    你(很可能)真正想要的是定义一个通用行为,它可以由子类以特定的方式实现。关于你的例子,这可能是一个在接口中定义的方法changeSizeTo(int newValue),它将由你的类实现,每个类都会做一些特定的事情


    [更新]

    I mean anything available to public is it really hiding? – Edward

    重点不是实际的访问修饰符,而是问题:“这会迫使调用者知道这个对象实际上是什么子类吗?”