编程方式检索参数的方法
来源:爱站网时间:2022-06-30编辑:网友分享
本篇文章主要讲述了编程方式检索参数的方法相关内容,如果你正在学习java编程的话,一定要来看看爱站技术频道小编整理的这篇文章,不管在生活中还是工作中都能帮助到你。
问题描述
作为一项家庭作业项目,我被要求在层次结构中创建一堆类,这些类在其构造函数中采用不同的参数,并允许用户以交互方式创建此类的对象。为简单起见,我们假设类为Base
和Child
,其中Child
扩展为Base
。项目中任何将来的类都将扩展Base
或其子类之一。
尽管该项目的重点不是编写优雅或可维护的代码,但我正在尝试编写此类代码。
理想情况下,在确定用户要实例化的对象之后,我将有一种方法来确定创建此类对象所需的参数,并将该列表传递给负责从用户中检索它们的方法。我想到了一种静态方法,getNecessaryArguments()
如:
public class Base {
public static List getNecessaryArguments() {
return Arrays.asList("name", "age");
}
public Base(String name, String age) {
...
}
}
public class Child extends Base {
public static List getNecessaryArguments() {
final List baseArgs = Base.getNecessaryArguments();
baseArgs.addAll(Arrays.asList("position"));
}
public Child(final String name, final String age, final String position) {
super(name, age);
...
}
然后我会做类似UserInterface.requestParameters(XXX.getNecessaryArguments())
的事情。
尽管此代码有几个明显的问题:
- 每个类需要并行维护两个参数列表:构造函数的实际参数和
getNecessaryArguments()
返回的参数。 Child
扩展的类必须在其getNecessaryArguments()
中明确提及,因为super()
不能在静态上下文中使用。
如果将来更改设计,所有这些都可能引发不同步的问题。
处理这些问题的最佳方法是什么,以使代码可以适应某些设计更改?我想到了反射,但是我认为您不能从中检索参数名称,只能从方法签名中检索参数名称。
思路:
带有ConstructorProperties
的Java Beans是我的选择,看到一些想法可能会很有趣。例如,要与一个Bean类Foo并行,可以有一个描述类FooBean。
编程方式检索参数的方法内容不知道各位朋友都看明白了没有,在我们爱站技术频道网站有很多精彩有趣的技术文章,如果你有需要可以前来查看翻阅。
上一篇:Java中进行两个集合合并的方法