【问题标题】:Concatenate String using '+' in Android在 Android 中使用“+”连接字符串
【发布时间】:2014-08-29 10:43:38
【问题描述】:

我正在实现 toString 方法(Android),我需要连接对象中的所有字段

对于 Java (JDK),我可以这样做:

@Override
public String toString() {
    return "{_id=" + _id + 
            ", name=" + name +  
            "}";        
}

在后台,Java 编译器将使用 StringBuilder 为我构建字符串连接,因此我不必显式使用 StringBuilder。

我的问题是:我可以在 ANDROID 代码中使用这种实现方式吗?或者我必须明确使用 StringBuilder? 我不知道 Android 编译器在这种情况下是如何工作的。

有人有什么想法吗?谢谢!

【问题讨论】:

  • 你试过在 Android 中这样做吗?是一样的。
  • 是的..你可以以同样的方式使用它..
  • 这看起来你正在构建一个 SQL 查询字符串。在这种情况下,不要使用它。使用绑定变量。使用这种方法有 SQL 注入 bug 的风险,而且它也不能让 db 优化。
  • 如果您正在构建 SQL 字符串,请提醒:", name=" + name + "}"; 应为 ", name='" + name + "'}";(用撇号包围您的字符串)。但是,正如@GabeSechan 正确指出的那样,最好绑定您的参数。
  • @GabeSechan,@Frank N. Stein:我不是在构建动态 SQL。我正在实现 toString 对象。您适合 SQL 查询生成器。

标签: java android string string-concatenation


【解决方案1】:

是的,您可以在 Android 中执行此操作。是否会以相同的方式进行优化取决于您使用的特定编译器和 JVM,但很难找到不再优化的编译器。

【讨论】:

  • 你的意思是Android编译器会将我的代码转换为StringBuilder进行优化?
  • 我的意思是大多数 Java 编译器都会这样做,包括 Android 编译器(因为 Android 编译器大多是具有不同库集的标准 Java 编译器)。但不能保证所有编译器和 JVM。
猜你喜欢
  • 2014-05-14
  • 1970-01-01
  • 1970-01-01
  • 2013-04-19
  • 1970-01-01
  • 2020-02-27
  • 2022-12-08
  • 2023-03-08
  • 1970-01-01
相关资源
最近更新 更多