- [x] I have searched the [issues](https://github.com/apache/dubbo/issues) of this repository and believe that this is not a duplicate.
- [x] I have checked the [FAQ](https://github.com/apache/dubbo/blob/master/FAQ.md) of this repository and believe that this is not a duplicate.

### Environment

* Dubbo version: 2.7.3
* Operating System version:  win7
* Java version: jdk8

### Steps to reproduce this issue

1.  define a service Interface like this.
```
public interface HelloBOMService {
  PersonResponseType get(PersonRequestType request) throws Exception;
}
```
2. getServiceDefinition and print Method Parameter
``` 
 ServiceDefinition serviceDefinition = ServiceDefinitionBuilder.build(HelloBOMService.class);
        System.out.println(serviceDefinition.getMethods().get(0).getParameters());
```
3. the methodDefition return  an empty list 

1. Extends TypeBuilder to construct Protobuf typeBuilder and add SPI file.
```
@SPI
public interface TypeBuilder {
```
2. Use serviceDefition.getTypes() to obtains all TypeDefinitions. It is nessary to know which TypeDefinitionBuilder build this TypeDefition.When TypeBuilder generate same ServiceDefinition
use different logic.

### Expected Result
We could get parameter type list from MethodDefition.
We should know which Builder build this TypeDefition.

public void setReturnType(String returnType) {
        this.returnType = returnType;
    }
    @Override
    public String toString() {
        return "MethodDefinition [name=" + name + ", parameterTypes=" + Arrays.toString(parameterTypes)
                + ", returnType=" + returnType + "]";
    }
    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (!(o instanceof MethodDefinition)) {
            return false;
        }
        MethodDefinition that = (MethodDefinition) o;
        return Objects.equals(getName(), that.getName()) &&
                Arrays.equals(getParameterTypes(), that.getParameterTypes()) &&
                Objects.equals(getReturnType(), that.getReturnType()) &&
                Objects.equals(getParameters(), that.getParameters());
    }
    @Override
    public int hashCode() {
        int result = Objects.hash(getName(), getReturnType(), getParameters());
        result = 31 * result + Arrays.hashCode(getParameterTypes());
        return result;
    }
}