本文整理了Java中com.esotericsoftware.kryo.Kryo.setRegistrationRequired()
方法的一些代码示例,展示了Kryo.setRegistrationRequired()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Kryo.setRegistrationRequired()
方法的具体详情如下:
包路径:com.esotericsoftware.kryo.Kryo
类名称:Kryo
方法名:setRegistrationRequired
[英]If true, an exception is thrown when an unregistered class is encountered. Default is false.
If false, when an unregistered class is encountered, its fully qualified class name will be serialized and the #addDefaultSerializer(Class,Class) for the class used to serialize the object. Subsequent appearances of the class within the same object graph are serialized as an int id.
Registered classes are serialized as an int id, avoiding the overhead of serializing the class name, but have the drawback of needing to know the classes to be serialized up front.
[中]如果为true,则在遇到未注册的类时引发异常。默认值为false。
如果为false,则当遇到未注册的类时,将序列化其完全限定的类名,并使用用于序列化对象的类的#addDefaultSerializer(类,类)。该类在同一对象图中的后续外观被序列化为int-id。
注册的类被序列化为int-id,避免了序列化类名的开销,但是有一个缺点,就是需要预先知道要序列化的类。
代码示例来源:origin: EsotericSoftware/kryonet
public KryoSerialization () {
this(new Kryo());
kryo.setReferences(false);
kryo.setRegistrationRequired(true);
}
代码示例来源:origin: apache/flink
private void checkKryoInitialized() {
if (this.kryo == null) {
this.kryo = getKryoInstance();
// Enable reference tracking.
kryo.setReferences(true);
// Throwable and all subclasses should be serialized via java serialization
// Note: the registered JavaSerializer is Flink's own implementation, and not Kryo's.
// This is due to a know issue with Kryo's JavaSerializer. See FLINK-6025 for details.
kryo.addDefaultSerializer(Throwable.class, new JavaSerializer());
// Add default serializers first, so that the type registrations without a serializer
// are registered with a default serializer
for (Map.Entry<Class<?>, ExecutionConfig.SerializableSerializer<?>> entry: defaultSerializers.entrySet()) {
kryo.addDefaultSerializer(entry.getKey(), entry.getValue().getSerializer());
}
for (Map.Entry<Class<?>, Class<? extends Serializer<?>>> entry: defaultSerializerClasses.entrySet()) {
kryo.addDefaultSerializer(entry.getKey(), entry.getValue());
}
KryoUtils.applyRegistrations(this.kryo, kryoRegistrations.values());
kryo.setRegistrationRequired(false);
kryo.setClassLoader(Thread.currentThread().getContextClassLoader());
}
}
代码示例来源:origin: changmingxie/tcc-transaction
@Override
protected Kryo initialValue() {
Kryo kryo = new Kryo();
kryo.setReferences(true);
kryo.setRegistrationRequired(false);
//Fix the NPE bug when deserializing Collections.
((Kryo.DefaultInstantiatorStrategy) kryo.getInstantiatorStrategy())
.setFallbackInstantiatorStrategy(new StdInstantiatorStrategy());
return kryo;
}
};
代码示例来源:origin: changmingxie/tcc-transaction
@Override
protected Kryo initialValue() {
Kryo kryo = new Kryo();
kryo.setReferences(true);
kryo.setRegistrationRequired(false);
//Fix the NPE bug when deserializing Collections.
((Kryo.DefaultInstantiatorStrategy) kryo.getInstantiatorStrategy())
.setFallbackInstantiatorStrategy(new StdInstantiatorStrategy());
return kryo;
}
};
代码示例来源:origin: changmingxie/tcc-transaction
public Kryo create() {
Kryo kryo = new Kryo();
kryo.setReferences(true);
kryo.setRegistrationRequired(false);
//Fix the NPE bug when deserializing Collections.
((Kryo.DefaultInstantiatorStrategy) kryo.getInstantiatorStrategy())
.setFallbackInstantiatorStrategy(new StdInstantiatorStrategy());
return kryo;
}
};
代码示例来源:origin: fengjiachun/Jupiter
@Override
protected Kryo initialValue() throws Exception {
Kryo kryo = new Kryo();
for (Class<?> type : useJavaSerializerTypes) {
kryo.addDefaultSerializer(type, JavaSerializer.class);
}
kryo.setInstantiatorStrategy(new StdInstantiatorStrategy());
kryo.setRegistrationRequired(false);
kryo.setReferences(false);
return kryo;
}
};
代码示例来源:origin: fengjiachun/Jupiter
@Override
protected Kryo initialValue() throws Exception {
Kryo kryo = new Kryo();
for (Class<?> type : useJavaSerializerTypes) {
kryo.addDefaultSerializer(type, JavaSerializer.class);
}
kryo.setInstantiatorStrategy(new StdInstantiatorStrategy());
kryo.setRegistrationRequired(false);
kryo.setReferences(false);
return kryo;
}
};
代码示例来源:origin: atomix/atomix
/**
* Creates a Kryo instance.
*
* @return Kryo instance
*/
@Override
public Kryo create() {
LOGGER.trace("Creating Kryo instance for {}", this);
Kryo kryo = new Kryo();
kryo.setClassLoader(classLoader);
kryo.setRegistrationRequired(registrationRequired);
// If compatible serialization is enabled, override the default serializer.
if (compatible) {
kryo.setDefaultSerializer(CompatibleFieldSerializer::new);
}
// TODO rethink whether we want to use StdInstantiatorStrategy
kryo.setInstantiatorStrategy(
new Kryo.DefaultInstantiatorStrategy(new StdInstantiatorStrategy()));
for (RegistrationBlock block : registeredBlocks) {
int id = block.begin();
if (id == FLOATING_ID) {
id = kryo.getNextRegistrationId();
}
for (Pair<Class<?>[], Serializer<?>> entry : block.types()) {
register(kryo, entry.getLeft(), entry.getRight(), id++);
}
}
return kryo;
}
代码示例来源:origin: opentripplanner/OpenTripPlanner
kryo.setRegistrationRequired(false);
kryo.setReferences(true);
kryo.addDefaultSerializer(TPrimitiveHash.class, ExternalizableSerializer.class);
代码示例来源:origin: magro/memcached-session-manager
@Override
public Kryo build() {
Kryo k = this.buildFrom(KryoBuilder.this);
k.setRegistrationRequired(registrationRequired);
return k;
}
};
代码示例来源:origin: apache/incubator-dubbo
kryo.setRegistrationRequired(registrationRequired);
代码示例来源:origin: apache/incubator-dubbo
kryo.setRegistrationRequired(registrationRequired);
代码示例来源:origin: westnordost/StreetComplete
@Override protected Kryo initialValue()
{
Kryo kryo = new Kryo();
/* Kryo docs say that classes that are registered are serialized more space efficiently
(so it is not necessary that all classes that are serialized are registered here, but
it is better) */
kryo.setRegistrationRequired(true);
kryo.setInstantiatorStrategy(new Kryo.DefaultInstantiatorStrategy(new StdInstantiatorStrategy()));
for(Class reg : registeredClasses)
{
kryo.register(reg);
}
return kryo;
}
};
代码示例来源:origin: magro/memcached-session-manager
kryo.setRegistrationRequired(false);
kryo.register( Arrays.asList( "" ).getClass(), new ArraysAsListSerializer() );
kryo.register(InvocationHandler.class, new JdkProxySerializer());
代码示例来源:origin: us.ihmc/IHMCCommunication
public KryoStreamDeSerializer(int inputBufferSize)
{
kryo = new Kryo();
kryo.setReferences(false);
kryo.setRegistrationRequired(true);
readBuffer = new byte[inputBufferSize];
input = new Input();
input.setBuffer(readBuffer);
}
代码示例来源:origin: com.twitter/chill-java
protected Kryo newKryoWithEx() throws InstantiationException, IllegalAccessException {
Kryo k = kryoClass.newInstance();
k.setInstantiatorStrategy(instStratClass.newInstance());
k.setRegistrationRequired(regRequired);
for(IKryoRegistrar kr: registrations) {
kr.apply(k);
}
for(IKryoRegistrar dkr: defaultRegistrations) {
dkr.apply(k);
}
return k;
}
代码示例来源:origin: com.twitter/chill-java
public Kryo newKryo() {
Kryo k = KryoInstantiator.this.newKryo();
/** Try to avoid calling this method if you don't need to.
* We've been burned by binary compatibility with Kryo
*/
if(k.isRegistrationRequired() != req) { k.setRegistrationRequired(req); }
return k;
}
};
代码示例来源:origin: org.jupiter-rpc/jupiter-all
@Override
protected Kryo initialValue() throws Exception {
Kryo kryo = new Kryo();
for (Class<?> type : useJavaSerializerTypes) {
kryo.addDefaultSerializer(type, JavaSerializer.class);
}
kryo.setInstantiatorStrategy(new StdInstantiatorStrategy());
kryo.setRegistrationRequired(false);
kryo.setReferences(false);
return kryo;
}
};
代码示例来源:origin: co.paralleluniverse/quasar-core
public static Kryo newKryo() {
Kryo kryo = new ReplaceableObjectKryo();
kryo.setRegistrationRequired(false);
kryo.setInstantiatorStrategy(new SerializingInstantiatorStrategy());
registerCommonClasses(kryo);
return kryo;
}
代码示例来源:origin: org.scray/scray-client-jdbc
@Override
public Kryo newKryo() {
Kryo k = super.newKryo();
k.setRegistrationRequired(false);
JavaKryoRowSerialization.registerSerializers(k);
for (SerializerEntry<?> ser : KryoJavaPoolSerialization.getInstance()
.getSerializers()) {
k.register(ser.cls, ser.ser, ser.num);
}
return k;
}
内容来源于网络,如有侵权,请联系作者删除!