class Intro {

	public JFishProperty getJFishProperty(String propName, boolean isField){
		if(StringUtils.isBlank(propName)){
			return null;
		}
		JFishProperty prop = null;
		if(isField){
			/* 改用cache，修复大量获取字段时性能极差的问题
			 * Field field = getField(propName);
			return new JFishFieldInfoImpl(clazz, field);*/
			try {
				prop = fieldInfoCaches.get(propName);
			} catch (ExecutionException e) {
				throw new BaseException("getJFishProperty error", e);
			}
		}else{
			/*PropertyDescriptor pd = getProperty(propName);
			return new JFishPropertyInfoImpl(clazz, pd);*/
			try {
				prop = propertyInfoCaches.get(propName);
			} catch (UncheckedExecutionException e) {
				if(e.getCause() instanceof NoSuchElementException){
					return null;
				}
				throw e;
			}catch (ExecutionException e) {
				throw new BaseException("getJFishProperty error", e);
			}
		}
		return prop;
	}

	public  Intro(Class<T> clazz);

}