首页 > 解决方案 > 将字段名称作为参数传递给Java中同一类中的方法

问题描述

public class ConstructorA {
  private String FieldA, FieldB, FieldC;
  public String Setter(String ArgAA, String ArgAB) {
      this.ArgAA = ArgAB;  //or ArgAA could include "this."
  }
  public String Getter(String ArgBA) {
      return ArgBA;
  }
ObjectA = new ConstructorA();
ObjectA.Setter(FieldA, "TextA");
ObjectA.Setter(FieldB, "TextB");
ObjectA.Setter(FieldC, "TextC");
System.out.printf("%s %s %s", ObjectA.Getter(FieldA), ObjectA.Getter(FieldB), ObjectA.Getter(FieldC));

我正在尝试创建通用的 setter 和 getter(mutator 和 accessor)方法,通过将字段的名称作为参数到方法对中。这部分是出于好奇,但也是为了减少对象有很多字段的情况下的样板代码,每个字段都有自己的 getter/setter。我正在制作的代码已在上面的代码片段中抽象出来,以显示我希望完成的工作。如果需要任何额外的细节或澄清,或者任何看起来模棱两可的东西,请不要犹豫。

我知道上面的代码相当荒谬,并且可能更像伪代码而不是 java,因为我认为上面的代码根本不起作用。但是有什么与上述类似的可能吗?我是 Java 新手,所以对它的特性和限制不是很熟悉。我知道使用指针在 C 中可能会发生类似的事情?

无论如何,对于冗长的文字感到抱歉,并在此先感谢!任何输入都是有价值的,非常感谢。

标签: javamethodsparameter-passing

解决方案


不要这样做。

如果一个类有很多吸气剂,那么它的设计就很糟糕。

您本质上是将对象视为Map值的名称。也许您的用例实际上是您需要Map从名称到值?


推荐阅读