Случается в жизни Java программиста так, что требуется клонировать объект, который не является Cloneable и соответственно вызвать Object.clone() не представляется возможным.
Ниже привожу простой способ клонирования объекта.
public YourObject cloneObject(YourObject sourceObj) {
try {
ByteArrayOutputStream baostream
= new ByteArrayOutputStream();
ObjectOutputStream oostream
= new ObjectOutputStream(baostream);
oostream.writeObject(sourceObj);
oostream.flush();
oostream.close();
ByteArrayInputStream baistream
= new ByteArrayInputStream(baostream.toByteArray());
ObjectInputStream oistream
= new ObjectInputStream(baistream);
YourObject copy = (YourObject)oistream.readObject();
oistream.close();
return copy;
} catch(Exception e) {
}
}
Последнее время мне стали часто писать с просьбами выложить исходники к предыдущим статьям о разработке веб-приложений на Spring. Довольно долго мои руки не доходили до этого занятия и вот все таки дошли. Выкладываю готовый скелет, который можно использовать для начала разработки приложения. Поместил его в отдельный раздел на сайте и планирую постоянно поддерживать.
Скачать можно здесь: http://yasinetskiy.com/downloads
С сегодняшенго дня открывается новая категория в блоге - Code Snippets.
Представляю вашему вниманию первый из них.
/**
* Snippet #1
*
* Nthreads = Nproc*Ucpu*(W/C + 1), Nproc - number of processors,
* Ucpu - CPU utilization, W/C - ratio of wait time to compute time (1/1)
*/
int threadsNum = new Double(Math.ceil(Runtime.getRuntime()
.availableProcessors()*0.5 + 2)).intValue();