在if语句中使用对象非法启动表达式

时间:2018-04-16 23:30:00

标签: java oop if-statement

我现在有一个非常令人沮丧的问题,也许答案就在这里?

我目前遇到if语句问题。 我希望我的core.java类包含一个if语句,如果我的变量计数器达到2,它将关闭整个程序。

(rho <- cbind(c(1, .2, -.1), c(.2, 1, 0), c(-.1, 0, 1)))
#      [,1] [,2] [,3]
# [1,]  1.0  0.2 -0.1
# [2,]  0.2  1.0  0.0
# [3,] -0.1  0.0  1.0
sum(outer(alpha*sigma, alpha*sigma) * rho)
# [1] 184

我使用单独的方法private int counter = 0; //located in the class Ending 实现了这一点 这就是

addCounter()

我还有public void addCounter(){ this.counter ++; } //this will be called in core.java ,它应该返回计数器的值

getter

core.java中的changeState的清除

public int getCounter(){
    return counter;
}
//this will be called in core.java

此处描述了真正的问题:

我似乎无法提出一个if if语句,用于检查方法getCounter是否已达到&#39; 2&#39;多次调用Ending changeState = new Ending(); //(As per request)

我的第一个想法是使用诸如

之类的东西
addCounter();
这两行都给了我很多错误,我无法解决这个问题:

if(changeState.getCounter().equals(2)){ System.exit(0); } //I also tried using: if(changeState.getCounter() == 2) //however, that didn't work either

.java:476: error: illegal start of type: if(changeState.getCounter().equals(2)){

.java:476: error: <identifier> expected: if(changeState.getCounter().equals(2)){

.java:476: error: ';' expected: if(changeState.getCounter().equals(2)){

.java:476: error: illegal start of type: if(changeState.getCounter().equals(2)){

.java:476: error: illegal start of type: if(changeState.getCounter().equals(2)){

有没有人可以详细说明出了什么问题以及应该采取什么措施来克服这个问题? 提前谢谢!

C.C。

2 个答案:

答案 0 :(得分:0)

.equals(2)不正确,equals方法中的2是原始类型 int literal而不是Object或String type

.equals()方法使用类型“String” counter.equals( “2”)

或使用类型“对象”进行比较 .equals(((Object)new String(“2”)))

如果必须使用.equals()方法,那么它将是

if(counter.getCounter().equals(new Integer(2).toString())){
System.exit(0);
}

虽然这应该更简单,例如

if(counter.getCounter() == 2){
System.exit(0);
}

答案 1 :(得分:0)

My answer lied here all along.

如果其他人遇到类似的问题,那么您似乎无法调用类中的对象,除非它在方法中。

我承认这确实完全解决了我的问题,但它确实向我展示了一个宝贵的教训。

祝你好运!