java.jms.MapMessage getString属性

时间:2017-07-13 18:12:54

标签: java string jms

我只搜索了一个答案,但没有找到任何答案。 谢谢你的时间。 我对使用map.message通过JMS队列发送的if上的String语句有一些问题 这是代码(该部分仅是来自MapMessage的信息的创建和回顾)

信息创建

for (int i = 0; i < 5; i++) {
    if (Math.random() < 0.5f) {
    msg.setStringProperty("tipo", "MUL");
    msg.setBoolean("operazione", true);
    } else {
    msg.setStringProperty("tipo", "SUM");
    msg.setBoolean("operazione", false);
    }
    msg.setInt("operando1", (int) (Math.random() * 100));
    msg.setInt("operando2", (int) (Math.random() * 100));
    sender.send(msg);

}

从消息中检索数据

int op1 = 0, op2 = 0, ris = 0;
String tipo = null;
int k = 0;
boolean operazione;

public MyListener() {
// TODO Auto-generated constructor stub
}

public void onMessage(Message msg) {
    java.rmi.registry.Registry r;
    try {
        r = LocateRegistry.getRegistry();

        ICounter ic = (ICounter) r.lookup("counter");
        MapMessage message = (MapMessage) msg;
        tipo = "" + message.getStringProperty("tipo");
        System.out.println(tipo);
        op1 = message.getInt("operando1");
        op2 = message.getInt("operando2");
        operazione = message.getBoolean("operazione");
        if (operazione) {
        ris = ic.moltiplica(op1, op2);
        System.out.println("moltiplico");
        } else if (!operazione) {
        ris = ic.somma(op1, op2);
        System.out.println("sommo");
        } else {
        System.out.println("messaggio non valido");
        }
    } 
}

如果我试图避免使用if statament中的布尔变量 if(tipo.equals("MUL"))if(tipo.equals("SUM"))代码总是运行else分支,即使tipo变量的打印等于SUM或MUL,任何人都知道为什么?谢谢。 我尝试使用msg.getStringProperty("tipo")或使用==代替equals ..ICounter是RMI界面,它可以正常运行。

1 个答案:

答案 0 :(得分:0)

解决了使用问题 if(tipo=="SUM") 而不是if(tipo.equals("SUM"))Stock id: 42324 name: 'n1' stock_items id: 57889359 stock_id: 42324 check_id: 14123 turn: 5 mock_id: 57889357 id: 57889360 stock_id: 42324 check_id: 14141 turn: 3 mock_id: 0 Stock id: 42325 name: 'n1' stock_items id: 57889361 stock_id: 42325 check_id: 19499 turn: 5 mock_id: 57889359 id: 57889362 stock_id: 42325 check_id: 19500 turn: 3 mock_id: 0

任何人都可以告诉我为什么?感谢