Кратки съвети
Тук може да намерите полезни съвети и примери за много ситуации.
Автоматично генериране на годината в copyright съобщението на сайта
Повечето уеб сайтове имат подобно съобщение във футера си:
Copyright 1995-2010 example.com
Проблемът с него е, че трябва да се променя втората година всяка година. Ето как може да се автоматизира това с PHP:
Copyright 1995-<?php echo date('Y') ?> example.com
Генериране на serialVersionUID чрез използване на serialver
За генериране на serialVersionUID на Serializablе класовете може да се използва serialver инструмента от стандартната JDK дистрибуция. За целта е нужно да имате компилирания клас в jar файл или подходяща директорийна структура по пакети. Ето два примера
1. Класът org.example.MySerializable е компилиран в директорията project\bin\org\example\Myserializable.class. В такъв случай използваме следната команда
X:\JDK\bin\serialver -classpath project\bin org.example.MySerializable
2. Класът org.example.MySerializable се намира в jar файла project/lib/myjar.jar. Тогава:
/path/to/JDK/bin/serialver -classpath project/lib/myjar.jar org.example.MySerializable
И в двата случая добавяме генерираното число към класа и прекомпилираме:
private static final long serialVersionUID = 1234572295622776147L;
Определяне на разширението на файла чрез PHP
За да се определеи разширението на файла, използвайте следния фрагмент в PHP скрипт:
$ext = end(explode(".", $filename));
Тук $filename може да е самото име на файла, пълния или относителния път.
Динамично прилагане на instanceOf() в Java
Обикновено при проверка дали даден обект е от даден клас, се използва подобна конструкция:
...
if (myObject instanceof MyClass) {
...
Но в случай, че класът се определя динамично по време на изпълнение, този код не е коректен - не може да се използва нещо подобно:
...
Class<?> myClass = Class.forName("MyClass");
if (myObject instanceof myClass) {
...
Правилния начин е:
...
Class<?> myClass = Class.forName("MyClass");
if (myClass.isInstance(myObject)) {
...
Проверка за съществуване на таблица в база данни чрез JDBC
Функцията по-долу проверява дали дадена таблица съществува в базата данни, асоциирана с JDBC връзката. Използвани са само JDBC операции, без използване на таблици, заявки или функции, специфични за определена база данни, за да се постигне по-висока съвместимост.
public boolean isTablePresent(Connection connection, String tableNameToFind) throws SQLException {
DatabaseMetaData dbm = connection.getMetaData();
ResultSet rs = dbm.getTables(null, null, null, null);
boolean result = false;
while (rs.next()) {
String tableName = rs.getString(3);
if (tableNameToFind.equalsIgnoreCase(tableName)) {
result = true;
break;
}
}
rs.close();
return result;
}
Извеждане на празни променливи в DOS/cmd чрез echo+
За извеждане на екрана на съдържанието на дадена променлива използваме echo. Но командата echo има и друго предназначение - включване или изключване на извеждането на командите. Поради този факт се получава странен страничен ефект при извеждане на празни променливи. Например кода долу извежда "Echo is ON" вместо празен ред:
(set VAR=)
echo %VAR%
За да постигнем правилно поведение се добавя плюс накрая на echo:
(set VAR=)
echo+%VAR%
Откриване на даден Java class в директория с jar файлове
Ако имате директория с много jar фаилове и искате бързо да намерите този, който съдържа даден клас, ползвайте този скрипт:
findjar.sh:
dir=$1
class=$2
if [ $# -ne 2 ]
then
echo "Usage: `basename $0` <directory> <class>"
exit 1
fi
for file in `find $dir -name *.jar`
do
unzip -t $file | grep $class && echo $file
done
Пример: намиране на jar файл, който съдържа класа MyClass, в директорията /my/jars/folder:
findjar.sh /my/jars/folder MyClass