java方法返回"多值"方案

java 并不支持多值的返回,但可以利用java一些特性来模拟。实例代码如下:

/**
 * Created by wens on 15-5-23.
 */
public class TupleN {

    private Object[] values ;

    public TupleN(Object...values){
        this.values  = values ;
    }

    public <T> T getN(int index ){
        if(index < 0 || index >= values.length ){
            throw new IndexOutOfBoundsException(index+" of out of "+values.length) ;
        }
        return (T)values[index];
    }

    public static void main(String[] args) {
        TupleN tuple = returnMultiValue();
        String string = tuple.getN(0);
        int intV = tuple.getN(1);
        Bean b = tuple.getN(2) ;

    }


    public static TupleN returnMultiValue(){
        return new TupleN("test string" , 44, new Bean() ) ;
    }

    static class Bean {

    }

}



使用tuple对象装载返回值, tuple同时提供取出值方法(getN),结合java泛型及类型推导就不需要显式类型转换。


转载于:https://my.oschina.net/u/866190/blog/418843

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值