为什么String“==”运算符与android一起工作?

时间:2017-06-26 01:54:16

标签: java android string operator-keyword

以下java(android)源代码适用于调试构建,发布(签名)构建和allatori obsfucation构建(签名)。

SomeActivity.java

//Sends event to an async event processing class
public void emitEvent(){

    EventHandlerClass.emit("myEvent");

}

....
//Recieves callback from EventHandlerClass
public void handleEvent(Event event){//Event object has a String field named eventField;

    if(event.eventField == "myEvent"){


    }else if (event.eventField == "myEvent2"){

             .......

    }
}

EventHandlerClass.java

public void emit(String eventName){

 ...//process async event

    eventSource.handleEvent(new Event(eventName));

}

如您所见,回调获取一个字符串并将其与“==”进行比较  运营商。不知何故,这有效,但我真的不知道为什么这应该工作。据我所知,“==”应该是参考比较。

这意味着'event.eventField'与硬编码字符串“myEvent”具有相同的引用。有没有关于java的特殊规则来存储硬编码的字符串?

0 个答案:

没有答案