Java:使用函数的字符串参数作为对象名称?

时间:2014-04-13 16:00:11

标签: java

所以我正在学习java,我不知道如何使用字符串作为对象名称。

例如,假设我有3个不属于同一个类的对象,但它们都有变量a,b,c。我想要一个函数来修改这些变量,具体取决于我给出的对象名称,它的工作方式如下:

public void myFonction(String objectName)
{
   objectName.a++; //of course that doesn't word
   objectName.b=15;
//ect
}

这一定是非常简单的事情,但我在这个问题上发现的不适合这种情况或我不明白:)

3 个答案:

答案 0 :(得分:1)

你想要的不像Java那样。

会这样做:

public class Parent {

   protected int a;
   protected int b;
   protected int c;
}

然后你会

public class A extends Parent {
   //add whatever else you need
}

public class B extends Parent {
   //add whatever else you need
}

public class C extends Parent {
   //add whatever else you need
}

最后你的方法是:

public void myFonction(Parent object)
{
   object.a++;
   object.b=15;

}

答案 1 :(得分:0)

如果它们都有变量a,b和c,为什么不让类扩展使用这些变量的主类。然后,您可以通过该主类调用该函数。

E.g。

Entity Class has variables a, b, c

public void myFunction(Entity entityName){
    entityName.a++;
    entityName.b=15;
}

Class Dog扩展了Entity,因此使用Dog实例调用myFunction将允许您编辑这些值,就像调用类Cat的实例一样,它也扩展了实体。

答案 2 :(得分:0)

您可以使用按名称存储对象的地图来执行此操作。

Map<String, YourObject> map = new HashMap<>();
map.put ("Name1", new YourObject("Name1"));

然后您可以按名称查找对象并操作

String nameInput = "Name1";

YourObject obj = map.get(nameInput);
obj.incrementCounter(); // assuming you have this method