package com.github.wangxuehui.rpc.serializer; import java.util.concurrent.ConcurrentHashMap; import com.dyuproject.protostuff.Schema; import com.dyuproject.protostuff.runtime.RuntimeSchema; public class SchemaUtils { private static ConcurrentHashMap<Class<?>, Schema<?>> cachedSchema = new ConcurrentHashMap<Class<?>, Schema<?>>(); public static <T> Schema<T> getSchema( Class<T> clazz ) { @SuppressWarnings( "unchecked" ) Schema<T> schema = (Schema<T>) cachedSchema.get( clazz ); if ( schema == null ) { schema = RuntimeSchema.createFrom( clazz ); cachedSchema.put( clazz, schema ); } return schema; } }