1.4精准构造

对象定义

package com.godme.pojo;

public class Person {
    private String name;
    private String nickName;
    private String firstName;
    private String secondName;


    public Person(String name) {
        this.name = name;
    }

    public Person(String name, String nickName) {
        this.name = name;
        this.nickName = nickName;
    }

    public Person(String name, String nickName, String firstName, String secondName) {
        this.name = name;
        this.nickName = nickName;
        this.firstName = firstName;
        this.secondName = secondName;
    }


    public Person(String name, String firstName, String secondName){
        this.name = name;
        this.firstName = firstName;
        this.secondName = secondName;
    }
    
}

对象构造

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean name="justName" class="com.godme.pojo.Person">
        <constructor-arg value="name"/>
    </bean>
    
    <bean name="twoArgs" class="com.godme.pojo.Person">
        <constructor-arg value="name"/>
        <constructor-arg value="nickName"/>
    </bean>
    
    <bean name="order" class="com.godme.pojo.Person">
        <constructor-arg value="nickName"/>
        <constructor-arg value="name"/>
    </bean>
    
    <bean name="index" class="com.godme.pojo.Person">
        <constructor-arg index="1" value="nickName"/>
        <constructor-arg index="0" value="name"/>
    </bean>
    
    <bean name="name" class="com.godme.pojo.Person">
        <constructor-arg name="nickName" value="nickName"/>
        <constructor-arg name="name" value="name"/>
    </bean>
    
    <bean name="both" class="com.godme.pojo.Person">
        <constructor-arg index="0" name="name" value="name"/>
        <constructor-arg index="1" name="nickName" value="nickName"/>
    </bean>

</beans>

胡言乱语

这章抛出的问题是:如何准确的创建一个对象
或者这问题并不直接,因为无参构造然后进行属性注入,并不存在这种问题。
核心观点就是,如何通过构造方法,准确的构造一个类,尤其是多种构造方法如何选择。


这种问题在多入参,多构造,甚至是同类型上面有很大的随意性。 存在如下几个问题
  • 对应关系:顺序不对,参数复制错位
  • 类型错误:尤其是intstring的各种表示,因为配置始终是字符串进行的传递
    如配置,我们可以使用indexname,一个或者多个,去进行属性的指定,选择我们指定的构造方法,无误的进行构造。
    还有一个好处是,ide智能的进行检测,当乱写的构造不存在时,能够进行提示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值