编程方式检索参数的方法

来源:爱站网时间:2022-06-30编辑:网友分享
本篇文章主要讲述了编程方式检索参数的方法相关内容,如果你正在学习java编程的话,一定要来看看爱站技术频道小编整理的这篇文章,不管在生活中还是工作中都能帮助到你。

问题描述


作为一项家庭作业项目,我被要求在层次结构中创建一堆类,这些类在其构造函数中采用不同的参数,并允许用户以交互方式创建此类的对象。为简单起见,我们假设类为BaseChild,其中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())的事情。

尽管此代码有几个明显的问题:

  1. 每个类需要并行维护两个参数列表:构造函数的实际参数和getNecessaryArguments()返回的参数。
  2. Child扩展的类必须在其getNecessaryArguments()中明确提及,因为super()不能在静态上下文中使用。

如果将来更改设计,所有这些都可能引发不同步的问题。

处理这些问题的最佳方法是什么,以使代码可以适应某些设计更改?我想到了反射,但是我认为您不能从中检索参数名称,只能从方法签名中检索参数名称。

思路:


带有ConstructorProperties的Java Beans是我的选择,看到一些想法可能会很有趣。例如,要与一个Bean类Foo并行,可以有一个描述类FooBean。

编程方式检索参数的方法内容不知道各位朋友都看明白了没有,在我们爱站技术频道网站有很多精彩有趣的技术文章,如果你有需要可以前来查看翻阅。

上一篇:Java中进行两个集合合并的方法

下一篇:如何使用HtmlUnit获取特定元素

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载