相关疑难解决方法(0)

不会关闭一个字符串写入器导致泄漏?

我意识到在java中GC最终会清理对象,但是我问是不是关闭你的字符串编写器是不好的做法,目前我这样做:

 private static String processTemplate(final Template template, final Map root) {
        StringWriter writer = new StringWriter();
        try {
            template.process(root, writer);
        } catch (TemplateException e) {
            logger.error(e.getMessage());
        } catch (IOException e) {
            logger.error(e.getMessage());
        }
        finally {

        }

        return writer.toString();
    }
Run Code Online (Sandbox Code Playgroud)

我应该关闭编写器并创建一个像这样的新String:

String result = "";

...

finally {
  result = writer.toString();
  writer.close();
}
Run Code Online (Sandbox Code Playgroud)

这样做更好吗?

java memory-management freemarker stringwriter

33
推荐指数
2
解决办法
1万
查看次数

如何通过换行拆分字符串?

我是Android开发的菜鸟,我试图通过多个换行符多次拆分字符串.我正在尝试拆分的字符串是从数据库查询中提取的,并且构造如下:

public String getCoin() {
    // TODO Auto-generated method stub
    String[] columns = new String[]{ KEY_ROWID, KEY_NAME, KEY_QUANTITY, KEY_OUNCES, KEY_VALUE };
    Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null);
    String result = "";

    int iRow = c.getColumnIndex(KEY_ROWID);
    int iName = c.getColumnIndex(KEY_NAME);
    int iQuantity = c.getColumnIndex(KEY_QUANTITY);
    int iOunces = c.getColumnIndex(KEY_OUNCES);
    int iValue = c.getColumnIndex(KEY_VALUE);

    for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()){
        result = result + /*c.getString(iRow) + " " +*/ c.getString(iName).substring(0, Math.min(18, c.getString(iName).length())) + "\n";
    }
    c.close();
    return result;
Run Code Online (Sandbox Code Playgroud)

result.getCoin读成:

alphabravocharlie
Run Code Online (Sandbox Code Playgroud)

我想在换行符处拆分字符串并将每个子字符串放入一个字符串数组中.这是我目前的代码: …

java android

20
推荐指数
3
解决办法
8万
查看次数

在java中使用接口或类型进行变量定义?

ArrayList aList = new ArrayList();

List aList = new ArrayList();
Run Code Online (Sandbox Code Playgroud)

这两者之间有什么区别,哪个更好用,为什么?

java

14
推荐指数
3
解决办法
3067
查看次数

使用字符串变量时,是否需要在C#中显式关闭StreamReader?

这是我的代码:

string data = "...";
var stream = new StreamReader(data);
Run Code Online (Sandbox Code Playgroud)

这样可以不调用Close()方法吗?

c#

0
推荐指数
1
解决办法
760
查看次数

标签 统计

java ×3

android ×1

c# ×1

freemarker ×1

memory-management ×1

stringwriter ×1