假如我现在需要两个constructor,他们需要的参数个数和类型都一样,只是语义不一样。
因为不符合override的规则,所以只能通过调整参数的先后顺序来满足要求。
但这绝对不是个好的practice,比较的confusing。
public PaymentTrxInfo(long payerId, String externalOrderId, String paymentDedupeId, long pgTrackingId, PaymentStatusEnum pmtStatus)public PaymentTrxInfo(long payerId, String externalOrderId, String paymentDedupeId, long invoiceId, PaymentStatusEnum pmtStatus)有没有什么好的建议?
因为不符合override的规则,所以只能通过调整参数的先后顺序来满足要求。
但这绝对不是个好的practice,比较的confusing。
public PaymentTrxInfo(long payerId, String externalOrderId, String paymentDedupeId, long pgTrackingId, PaymentStatusEnum pmtStatus)public PaymentTrxInfo(long payerId, String externalOrderId, String paymentDedupeId, long invoiceId, PaymentStatusEnum pmtStatus)有没有什么好的建议?
第一条:考虑用静态工厂方法替代构造器
第二条:遇到多个构造器参数时考虑使用构建器。
具体去看书吧
所以under this context,估计是无解了
public PaymentTrxInfo(long payerId, String externalOrderId, String paymentDedupeId, long invoiceIdorPgTrackingId, PaymentStatusEnum pmtStatus, boolean isFirst) {
...
if(isFirst){
pgTrackingId = invoiceIdorPgTrackingId;
}else{
invoiceId = invoiceIdorPgTrackingId;
}}由于这台电脑没有编译器 所以没弄缩进 这个能满足楼主的要求吗