@Override
 public void addDeclaredTypeParameters(List<JvmTypeParameter> typeParameters) {
   if (typeParameters.isEmpty()) return;
   List<JvmTypeParameter> list = basicGetDeclardTypeParameters();
   if (list == null) {
     super.addDeclaredTypeParameters(parent.getDeclaredTypeParameters());
     getDeclaredTypeParameters().addAll(typeParameters);
   } else {
     list.addAll(typeParameters);
   }
 }
 @Override
 public List<JvmTypeParameter> getDeclaredTypeParameters() {
   List<JvmTypeParameter> result = basicGetDeclardTypeParameters();
   if (result != null) return result;
   return parent.getDeclaredTypeParameters();
 }