Хотя это не совсем точно для селекторов / объектов jQuery, в FireFox Quantum 58.x вы можете найти обработчики событий для элемента с помощью инструментов Dev:
Sergio:
необходимо использовать BLOB. Это довольно просто с JDBC.
проблемой со вторым кодом, который Вы отправили, является кодирование. Необходимо дополнительно закодировать байты для проверки ни одного в них сбои.
, Если Вы все еще хотите записать его в Строку, можно закодировать байты с помощью java.util. Base64.
Все еще необходимо использовать CLOB в качестве типа данных, потому что Вы не знаете, сколько времени сериализированные данные будут.
Вот образец того, как использовать его.
import java.util.*;
import java.io.*;
/**
* Usage sample serializing SomeClass instance
*/
public class ToStringSample {
public static void main( String [] args ) throws IOException,
ClassNotFoundException {
String string = toString( new SomeClass() );
System.out.println(" Encoded serialized version " );
System.out.println( string );
SomeClass some = ( SomeClass ) fromString( string );
System.out.println( "\n\nReconstituted object");
System.out.println( some );
}
/** Read the object from Base64 string. */
private static Object fromString( String s ) throws IOException ,
ClassNotFoundException {
byte [] data = Base64.getDecoder().decode( s );
ObjectInputStream ois = new ObjectInputStream(
new ByteArrayInputStream( data ) );
Object o = ois.readObject();
ois.close();
return o;
}
/** Write the object to a Base64 string. */
private static String toString( Serializable o ) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream( baos );
oos.writeObject( o );
oos.close();
return Base64.getEncoder().encodeToString(baos.toByteArray());
}
}
/** Test subject. A very simple class. */
class SomeClass implements Serializable {
private final static long serialVersionUID = 1; // See Nick's comment below
int i = Integer.MAX_VALUE;
String s = "ABCDEFGHIJKLMNOP";
Double d = new Double( -1.0 );
public String toString(){
return "SomeClass instance says: Don't worry, "
+ "I'm healthy. Look, my data is i = " + i
+ ", s = " + s + ", d = " + d;
}
}
Вывод:
C:\samples>javac *.java
C:\samples>java ToStringSample
Encoded serialized version
rO0ABXNyAAlTb21lQ2xhc3MAAAAAAAAAAQIAA0kAAWlMAAFkdAASTGphdmEvbGFuZy9Eb3VibGU7T
AABc3QAEkxqYXZhL2xhbmcvU3RyaW5nO3hwf////3NyABBqYXZhLmxhbmcuRG91YmxlgLPCSilr+w
QCAAFEAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cL/wAAAAAAAAdAAQQUJ
DREVGR0hJSktMTU5PUA==
Reconstituted object
SomeClass instance says: Don't worry, I'm healthy. Look, my data is i = 2147483647, s = ABCDEFGHIJKLMNOP, d = -1.0
ПРИМЕЧАНИЕ : для Java 7 и ранее Вы видите, что оригинал отвечает здесь
Как насчет того, чтобы писать данные в ByteArrayOutputStream вместо FileOutputStream?
Иначе, Вы могли сериализировать объект с помощью XMLEncoder, сохранить XML, затем десериализовать через XMLDecoder.
Спасибо за большие и быстрые ответы. Я буду давать, некоторые голосуют сразу для подтверждения справки. Я кодировал лучшее решение, по-моему, на основе Ваших ответов.
LinkedList<Patch> patches1 = diff.patch_make(text2, text1);
try {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream os = new ObjectOutputStream(bos);
os.writeObject(patches1);
String serialized_patches1 = bos.toString();
os.close();
ByteArrayInputStream bis = new ByteArrayInputStream(serialized_patches1.getBytes());
ObjectInputStream oInputStream = new ObjectInputStream(bis);
LinkedList<Patch> restored_patches1 = (LinkedList<Patch>) oInputStream.readObject();
// patches1 equals restored_patches1
oInputStream.close();
} catch(Exception ex) {
ex.printStackTrace();
}
Примечание я не сделал рассмотренного использование JSON, потому что менее эффективно.
Примечание: я буду, рассмотрел Ваш совет о не хранении сериализованного объекта как строки в базе данных, но байте [] вместо этого.
Как насчет того, чтобы сохранить объект как блоб
Сериализованный поток является просто последовательностью байтов (октеты). Таким образом, вопрос состоит в том, как преобразовать последовательность байтов к Строке, и назад снова. Далее это должно использовать ограниченный набор кодов символов, если это будет сохраненным в базе данных.
очевидное решение проблемы состоит в том, чтобы изменить поле на двоичный LOB. Если Вы захотите придерживаться characer LOB, то необходимо будет закодировать в некоторой схеме, такой как base64, шестнадцатеричное число или uu.
XStream обеспечивает простую утилиту для сериализации/десериализации к/от XML, и это очень быстро. Хранение XML CLOBs, а не двоичных БЛОБОВ будет менее хрупким, не говоря уже о более читаемом.
Можно использовать сборку в классах sun.misc. Base64Decoder и sun.misc. Base64Encoder для преобразования двоичных данных сериализирования к строке. Вы десяти кубометров не нужны дополнительные классы, потому что это - сборка в.
можно использовать Кодирование программой uuencode
Используйте платформу O/R такой, поскольку в спящем режиме
Если Вы храните объект как двоичные данные в базе данных, то действительно необходимо использовать BLOB
тип данных. База данных в состоянии сохранить его более эффективно, и Вы не должны волноваться о кодировке и т.п.. JDBC предоставляет методы для создания и получения блобов с точки зрения потоков. Используйте Java 6, если Вы можете, он сделал некоторые дополнения к API JDBC, которые делают контакт с блобами намного легче.
, Если бы абсолютно необходимо хранить данные как Строку, я рекомендовал бы XStream для основанного на XML устройства хранения данных (намного легче, чем XMLEncoder
), но альтернативные объектные представления могли бы быть так же, как полезные (например, JSON). Ваш подход зависит от того, почему на самом деле необходимо хранить объект таким образом.
Смотрите на java.sql. Класс PreparedStatement, конкретно функция
Тогда смотрят на java.sql. Класс ResultSet, конкретно функция
http://java.sun.com/javase/6/docs/api/java/sql/ResultSet.html#getBinaryStream (интервал)
Имеет в виду при сериализации объекта в базу данных, и затем изменение объекта в коде в новой версии процесс десериализации может легко перестать работать потому что измененная подпись объекта. Я когда-то сделал эту ошибку с хранением пользовательские сериализированные Предпочтения и затем внесение изменения в Предпочтительное определение. Внезапно я не мог считать ни одну ранее сериализированную информацию.
Вы могли бы быть более обеспеченной записью, неуклюжей на столбцы свойства в таблице и создании и разложении объекта этим способом вместо этого, для предотвращения этой проблемы с версиями объекта и десериализацией. Или запись свойств в hashmap какое-то, как java.util. Объект свойств и затем сериализация объекта свойств, который крайне маловероятно изменится.
/* rubbish */ */
как полный комментарий блока (от /*
до 2-го */
), в противоположность комментариям блока стиля C, в которых открытие /*
завершается самым близким закрытием */
, и другой */
идентифицируется как случайный символ в программе. Следующий regex (для гибкого провода/закона) обрабатывает этот случай также "/*"((("*"[^/])?)|[^*])*"*/"
Источник - [ссылка] ( stackoverflow.com/questions/16160190/… )
– Shobhit
11 February 2014 в 07:13