Wiele klas w pakiecie javax.sql używa konstruktora new String(str)
. Na przykład:Dlaczego klasy w pakiecie javax.sql używają nowego ciągu (str)?
public void setCatalogName(int columnIndex, String catalogName) throws SQLException {
checkColRange(columnIndex);
if (catalogName != null)
colInfo[columnIndex].catName = new String(catalogName);
else
colInfo[columnIndex].catName = new String("");
}
Albo
public void setUsername(String name) {
if(name == null)
{
username = null;
} else {
username = new String(name);
}
}
i wiele więcej:
javax.sql.rowset.serial.SerialStruct.SerialStruct (Sqldata, mapa>) javax.sql. rowset.serial.SerialStruct.SerialStruct (Struct, Map>) javax.sql.rowset.RowSetMetaDataImpl.setCatalogName (int, String) javax.sql.rowset.RowSetMetaDataImpl.setColumnLabel (int, String) javax.sql.rowset.RowSetMetaDataImpl.setColumnName (int, string) javax.sql.rowset.RowSetMetaDataImpl.setColumnTypeName (int, string) javax.sql.rowset.BaseRowSet.setCommand (String) javax.sql.rowset. BaseRowSet.setDataSourceName (String) java.text.DateFormatSymbols.setLocalPatternChars (String) javax.sql.rowset.BaseRowSet.setNull (int, int, string)
Jaki jest cel tego? Czy nie tworzy niepotrzebnych instancji napisów na stercie?
Według którego wdrożenia JDK? OpenJDK? – oldrinb
JDK6, Oracle .... Właśnie sprawdziłem JDK7, i jest tam naprawiony – Bozho
Rzeczywiście, nie widzę żadnego z nich w [OpenJDK 7] (http://grepcode.com/file_/repository.grepcode.com /java/root/jdk/openjdk/7-b147/javax/sql/rowset/RowSetMetaDataImpl.java). – oldrinb