【问题标题】:what's wrong with concatenation in blackberry application?黑莓应用程序中的连接有什么问题?
【发布时间】:2010-04-01 15:00:09
【问题描述】:

对于我的生活,我无法理解为什么将连接字符串添加到 MainScreen 会导致 BB 模拟器引发异常。如果我使用以下控件运行一个非常简单的 hello 程序,一切都很好:

RichTextField rtfHello = new RichTextField("Hello There !!!");        
add(rtfItemDescription);

但是如果我添加一个串联的字符串,整个应用程序就会中断:

String MyName = "John Doe";
RichTextField rtfHello = new RichTextField("Hello There !!!" + MyName);        
add(rtfItemDescription);

那我做错了什么?第二个例子模拟器为什么会抛出异常?

【问题讨论】:

  • 抛出了什么异常?
  • 确实,无一例外,这很难回答。
  • "Hello There" + myName 会导致运行时字符串连接,这很好,除非您的 Eclipse 正在生成真实和现代的 Java 代码,而 BB5/6/7 需要上个世纪(字面意思) 使用 StringBuffer 的 Java ME。您必须首先确保您的项目构建属性设置为 Java Compiler -> Source Level 1.3 或 1.4(在回复之前搜索此主题!)。这曾经足够了,但显然在 2013 年 3 月软件升级到 Eclipse 之后,这甚至不再解决问题,我仍在寻找解决方案。

标签: blackberry blackberry-simulator


【解决方案1】:

对于 Blackberry 中的字符串连接,请尝试使用 StringBuffer 类。 StringBuffer 比 String 快,因为它是可变的。

【讨论】:

  • 似乎成功了 :) StringBuffer str = ""; str.append(Mystring);
【解决方案2】:

看起来当我在我的黑莓项目(使用eclipse)中进行任何字符串连接时,打包过程找不到类StringBuilder的定义。该项目默认为jdk 1.4。 StringBuilder 直到 1.5 版才引入,因此尝试运行代码将产生“未找到类定义”错误消息。所以这是我对为什么我看到我的错误的猜测。 – sexitrainer 1 月 20 日 15:30

这是因为 StringBuilder 不是 J2ME 的一部分。在为移动设备编程时,您将无法使用它。

【讨论】:

    【解决方案3】:

    试试这个

    String MyName = "John Doe";
        RichTextField rtfHello = new RichTextField("Hello There !!!" + MyName);        
        add(rtfHello);
    

    【讨论】:

      【解决方案4】:

      不确定它为什么会爆炸(但我不是黑莓/Java 开发人员)。您是否尝试过:

      String MyName = "John Doe"; 
      String HelloString = "Hello There !!!";
      RichTextField rtfHello = new RichTextField(HelloString.concat(MyName));         
      add(rtfItemDescription); 
      

      或者简单地说,

      String MyName = "John Doe"; 
      RichTextField rtfHello = new RichTextField("Hello There!!!".concat(MyName));         
      add(rtfItemDescription); 
      

      【讨论】:

      • 尝试连接 Char 不起作用。我相信这是因为 OS 7.1 及以下版本使用 Java ME。
      【解决方案5】:

      我不认为字符串连接有问题。 可以提供更多信息,例如您遇到了什么异常。

      【讨论】:

      • 看起来当我在我的黑莓项目(使用eclipse)中进行任何字符串连接时,打包过程找不到类StringBuilder的定义。该项目默认为jdk 1.4。 StringBuilder 直到 1.5 版才引入,因此尝试运行代码将产生“未找到类定义”错误消息。所以这就是我为什么会看到我的错误的猜测。
      猜你喜欢
      • 1970-01-01
      • 2011-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多