- [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: Mac
* Java version: 1.8

### Steps to reproduce this issue

1.  `org/apache/dubbo/registry/support/ProviderConsumerRegTable.java:65` Type 'ProviderInvokerWrapper<>' does not define hashCode(), but is used in a hashing data-structure.
2. Class overrides equals but not hashCode.
* org.apache.dubbo.config.AbstractConfig
* org.apache.dubbo.registry.support.ProviderInvokerWrapper
* org.apache.dubbo.remoting.buffer.AbstractChannelBuffer

Pls. provide [GitHub address] to reproduce this issue.

### Expected Result

Whether the above suggestions can be fixed or have other considerations

### Actual Result

Is it considered a bug? Will it fix?

String pre = (prefix != null && prefix.length() > 0 ? prefix + "." : "");
        for (Map.Entry<String, String> entry : parameters.entrySet()) {
            String key = entry.getKey();
            String value = entry.getValue();
            result.put(pre + key, value);
            
            if (key.contains("-")) {
                result.put(pre + key.replace('-', '.'), value);
            }
        }
        return result;
    }
    @Parameter(excluded = true)
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public void updateIdIfAbsent(String value) {
        if (StringUtils.isNotEmpty(value) && StringUtils.isEmpty(id)) {
            this.id = value;
        }
    }
    protected void appendAnnotation(Class<?> annotationClass, Object annotation) {
        Method[] methods = annotationClass.getMethods();
        for (Method method : methods) {
            if (method.getDeclaringClass() != Object.class
                    && method.getReturnType() != void.class
                    && method.getParameterTypes().length == 0