gpt4 book ai didi

java - GWT 平台独立换行符

转载 作者:搜寻专家 更新时间:2023-11-01 02:44:11 26 4
gpt4 key购买 nike

在我的一个 java 类中,我想写一个看起来像这样的结果:

String LINE_SEPARATOR = System.lineSeparator();
Stringbuilder result = new Stringbuilder();
result.append("some characters");
result.append(LINE_SEPARATOR);

使用此代码的类被传递到基于 GWT 的前端。 GWT 将 GWT 使用的所有 java 类(例如前面的所有类)编译成 javascript。但是,GWT 无法编译 System.lineSeparator(),因为在 javascript 中没有等效方法。

String LINE_SEPARATOR = System.getProperty(line.separator);

String LINE_SEPARATOR = String.format("%n");

还会导致 GWT 编译器异常。然而,

String LINE_SEPARATOR = "\r\n";

有效,但不是平台独立的。

如何获得与 GWT 兼容的独立于平台的换行符?

最佳答案

可能可行的最简单的事情(超出我的头脑):

String LINE_SEPARATOR = GWT.isClient() ? "\n" : getLineSeparator();

@GwtIncompatible
private static String getLineSeparator() {
return System.lineSeparator();
}

这将需要最新版本的 GWT(至少 2.6,可能是 2.7)。

另一种方法是使用带有简单提供者类的 super 源:

public class LineSeparatorProvider {
public final String LINE_SEPARATOR = System.lineSeparator();
}

// in super-source
public class LineSeparatorProvider {
public final String LINE_SEPARATOR = "\n";
}

请注意,在 GWT 的 future 版本中,System.getProperty 将起作用(对于某些属性),因此您可能使其适用于 line.separator

或者,你可以在任何地方使用\n,只有当你真的需要\r\n时,然后做一个替换(“\n”,“\r\n”)

(如果你问我,我会在所有地方使用 \n,即使在 Windows 上也是如此)

关于java - GWT 平台独立换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26525554/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com