2013-05-17 145 views
1

我仍在学习,但似乎陷入了一个非常简单的障碍;我的强项似乎与方程逻辑有关,但我在记忆和实现函数方面以及修正简单语法方面缺乏技巧。使用另一个类中的getter方法返回的变量

,我在实现该方法的类是MyClass的,我想定义从其他类所采取的变量是establishIrEvent的方法。我想从中收集变量的类是IREvent,它返回我要收集的此类中的变量的getter方法是getX。

现在的代码:

getter方法从IREvent类:

public int getX() { 
    return x; 
} 

的方法,我想在使用该变量分配,(我非常可怜的尝试)MyClass中:

public void establishIrEvent(IREvent arg0) { 

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

} 

任何意见将非常感激,并祈祷这个问题可以帮助别人类似的咸菜都重要!请索取更多信息,因为我似乎总是错过某些东西,或者提出一个让某位经验丰富的开发人员感到困惑的问题。

+0

你为什么将int转换为IREvent?此外,你正在分配结果给字符串。 – pbespechnyi

+0

我忘了改变这一点,我想分配给一个int,谢谢你,我会编辑 – Phil

+0

你没有提到任何问题,但我认为你的代码不会编译。尝试'String source = String.valueOf(arg0.getX());'你不能将int转换为String。你需要转换它。 – nakosspy

回答

3

你的代码有几个问题。首先,您正在尝试将int指定给String,因为getX返回int并且source变量是String。如果你想这样做,然后尝试:

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

其次,问题不大,没有必要投arg0IREvent因为它已经定义为在establishIrEvent方法。

+0

谢谢你,我没有试图转换为字符串,那是我作为一个工具 – Phil

+0

所以我采取了你的答案,并把int xCord = arg0.getX(); – Phil

+0

所有工作都很精美,谢谢!对不起,因为我的无知,但我必须开始某处...我是一个“乐趣”的学习者,但它是令人难以置信的多么频繁的“乐趣”转化为“让自己为它哭泣”! – Phil

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和源被丢弃通话结束后。因此,您可能希望将x和/或source变量作为类的成员变量,其中establishIrEvent(IREvent arg0)是一种方法。

1

有一个在下面的语句中的一个问题:

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

问题:IREvent的的getX()方法返回int和你正试图通过铸造返回类型IREvent将其分配到的字符串。最终让每个人都感到困惑,包括JVM和你自己。

我不知道你是否需要该值作为字符串,如果是这样的话,那么你需要做的是这样的:

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

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

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

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

相关问题