使用另一个类中的getter方法返回的变量

时间:2013-05-17 13:43:51

标签: java class variables syntax getter

我还在学习,但似乎应该是非常简单的障碍;我的优点似乎与方程逻辑有关,但我在记忆和实现函数以及纠正简单语法方面几乎没有技巧。

我实现该方法的类是MyClass,我想要定义从另一个类获取的变量的方法是establishIrEvent。我想从中收集变量的类是IREvent,返回此类中我想要收集的变量的getter方法是getX。

现在代码:

来自IREvent类的Getter方法:

public int getX() {
    return x;
}

我想在MyClass中使用该变量进行分配的方法(我的尝试非常糟糕):

public void establishIrEvent(IREvent arg0) {

    int source = (IREvent)arg0.getX();

}

任何建议都将非常感激,并且手指越过这个问题可能会帮助其他类似的泡菜!请询问更多信息,因为我似乎总是想念一些事情或者问一些让有经验的开发人员烦恼的问题。

4 个答案:

答案 0 :(得分:3)

您的代码存在一些问题。首先,您尝试将int分配给String,因为getX返回intsource变量是String。如果你想这样做,那就试试:

String source = Integer.toString(arg0.getX());

第二,而不是问题,不需要将arg0转换为IREvent,因为它已经定义为establishIrEvent方法中的那个。

答案 1 :(得分:1)

getX()返回一个int,以便您可以执行以下操作

public void establishIrEvent(IREvent arg0) {

   int x = arg0.getX(); // local variable x which is the x from the IREvent class
   String source = Integer.toString(x); // if that's what the source string should be given x

}

该代码应该编译并运行正常但它仍然无用,因为调用establishIrEvent(IREvent arg0)没有改变任何内容,因为调用后丢弃了变量x和source。因此,您可能希望将x和/或source变量作为establishIrEvent(IREvent arg0)方法的类的成员变量。

答案 2 :(得分:1)

以下声明中存在问题:

String source = (IREvent)arg0.getX();

问题:IREvent的getX()方法返回int,并且您试图通过将返回类型转换为IREvent将其分配给String。最终让每个人都感到困惑,包括JVM和你自己。

我不确定你是否需要将值作为字符串,如果是这种情况那么你需要这样做:

String source = String.valueOf(arg0.getX());

答案 3 :(得分:1)

你已经完成了大部分工作。问题是arg0.getX()会返回int。此int不是您要将其分配给的字符串,因此您必须将其转换为int类型。您试图将其转换(强制转换)为IREvent类型,这是错误的。尝试这样的事情:

public void establishIrEvent(IREvent arg0) {
     String source = String.valueOf(arg0.getX());
} 

我建议您使用Eclipse IDE,所有这些东西将更容易应对。 Eclipse IDE将为您提供即时编译器错误和警告消息,并提出好的建议。