参数中的Java方法对象名称

时间:2015-03-20 08:21:10

标签: java object arguments

我想创建一个方法,除了其他方面之外,还会创建一个名为method参数的对象。 (如果它在其他地方得到解决,我很抱歉,没有找到它)如下所示:

public return_type method (String ARGUMENT1)
{
  ...
  ClassOfSomeKind objectOfSomeKind someprefix_ARGUMENT1 = new ClassOfSomeKind();
}

2 个答案:

答案 0 :(得分:3)

这是命名变量 - 而不是对象。对象没有名称,因此。 (当然,你可以有一个名为name的字段,但它不是一般的东西。)

变量名通常仅在编译时相关 - 因此动态执行此操作并不合理。

听起来你可能想要一个Map<String, YourClassType>,这样你就可以将每个对象与一个名字相关联,然后再获取它。如下所示:

class Foo {
    private final Map<String, Bar> bars = new HashMap<>();

    public Bar createBar(String name) {
        Bar bar = new Bar();
        bars.put(name, bar);
        return bar;
    }

    public void processBar(String name) {
        Bar bar = bars.get(name);
        if (bar == null) {
            // No Bar for that name...
            // Maybe throw an exception?
        }
        // Do something with bar
    }
}

答案 1 :(得分:2)

你可以使用一个Map,其中键是你的变量名,值是ObjectOfSomeKind对象:

public class YourClass {
  ...
  private Map<String, ObjectOfSomeKind> yourHashMap= new HashMap<String, ObjectOfSomeKind>();

  public method (string ARGUMENT1)
  {
    yourHashMap.put("someprefix_"+ARGUMENT1, new ObjectOfSomeKind ("someprefix_"+ARGUMENT1));

  }
  ...

  public retrieveMethod (string ARGUMENT1)
  {
    ObjectOfSomeKind objectOfSomeKindRetrieved = yourHashMap.get("someprefix_"+ARGUMENT1);
  }
}