java.lang.NullPointerException: null at org.springframework.cloud.openfeign.ribbon.FeignLoadBalance

java基础思考,下面是基本数据类型报空指针异常的情形及原因,这个空指针异常抛出代码我没找到,可能是在太底层了,没有相关异常信息,就一个异常…巨坑.
还有注意构造方法抛异常的异常信息格式: at com. ... .类名.<init>..... ,要知道这是在构造方法中抛出的异常.

public static class selfClass {
        int a;

        public selfClass(Integer a) {
            this.a = a;
        }
    }

    public static void main(String[] args) {
        // Exception in thread "main" java.lang.NumberFormatException: null
        int a = Integer.parseInt(null);
        //Exception in thread "main" java.lang.NullPointerException
        int b = (Integer) null;
        // Exception in thread "main" java.lang.NullPointerException
        // 		at com. ... .类名.<init>
        new selfClass(null);

    }

今天写springcloud的小demo,feign版本是2.2的,这个版本在定义IClientConfig类的时候,我自己是用的默认无参构造方法…这个方法…啧,只是产生bean,但properties集合为空,即没有任何属性配置,这是该方法的注解.

	/**
	 * Create instance with no properties in the specified name space
	 */
    public DefaultClientConfigImpl(String nameSpace) {
    	this();
    	this.propertyNameSpace = nameSpace;
    }

该bean用于向FeignLoadBalancer负载均衡器中填充相关属性,填充的时候就会产生问题,会遇到空指针,解决方法是实例化bean:IClientConfig时,不要new,不要new,不要new!,它封装的有静态构造工具类,用这种方式构建才会有属性集合:

	public static DefaultClientConfigImpl getClientConfigWithDefaultValues(String clientName) {
		return getClientConfigWithDefaultValues(clientName, DEFAULT_PROPERTY_NAME_SPACE);
	}
	
	public static DefaultClientConfigImpl getClientConfigWithDefaultValues() {
        return getClientConfigWithDefaultValues("default", DEFAULT_PROPERTY_NAME_SPACE);
    }

我是在报错Consider defining a bean of type ‘com.netflix.client.config.IClientConfig’ 之后,自己手动实例化了IClientConfig类,潜意识用无参构造方法实例化,就遇到了这个问题.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值