当前位置:编程学习 > JAVA >>

java如何使用函数返回多个函数值?求高手知道啊

java如何使用函数返回多个函数值?求高手指导啊 ,求举个例子感激不尽 --------------------编程问答-------------------- 返回一个数组或者一个Collection --------------------编程问答-------------------- 要都是值型的不好弄,只能全局变量,
地址型的可通过参数来设置。 --------------------编程问答-------------------- 返回一个数组就好了撒,自己定义好数组每个索引下代表的值 --------------------编程问答-------------------- 用面向对象的角度,如果返回的结果值很多且类型也不一致的话,可以构造一个对象,对象的属性根据返回值类型设置,那么方法运行结束后,返回此对象即可 。 --------------------编程问答-------------------- 吧结果封装成对象比较好  --------------------编程问答-------------------- 提供一个Tuple类, --------------------编程问答-------------------- 可能是用的地方和对象不同,这个还是有点困难的 --------------------编程问答-------------------- 如果是返回若干个同一类的信息,显然是集合。
如果是返回若干个不同的属性,显然是返回一个自定义对象,或者偷懒用Map --------------------编程问答-------------------- java 一个函数只能返回一个对象
但是都有很多解决的方法
方法一、封装一个含有多个你想返回的值的类,然后返回它的对象
方法二、使用现成封装好的类如List或者使用数组保存想返回的值,并返回它的对象
方法三、在函数内部改变你想要改变的值已达到目的
方法四、使用按址传递的方法传入参数、在函数内部处理更改传入的那个参数、则函数外同样地址的变量的值也会改变、也相当于变相的一个返回一个参数

ps:java 对按址传递明确硬性规定:
按值传递的数据类型:八种基本数据类型和String(这样理解可以,但是事实上String也是传递的地址,只是string对象和其他对象是不同的,string对象是不能被改变的,内容改变就会产生新对象。那么StringBuffer就可以了,但只是改变其内容。不能改变外部变量所指向的内存地址。关于String的特殊性见本博客的String类深入解析)。 
按址传递的数据类型:除String以外的所有复合数据类型,包括数组、类和接口  --------------------编程问答-------------------- 补充:方法三说得不明确~ 应该是类似定义为全局变量的值在函数中处理改变~  --------------------编程问答-------------------- 1.返回一个集合Map,List或者返回二个数据Object[],
2.采用JAVA的泛型,这样就灵活的实现了返回不同类型结果的方法了
public class Test<T>
{
    
    public T get()//实例方法
    {
        T t = null;
        return t;
    };
    
}

class TestA
{
    public <T> T get()//静态方法
    {
        T t = null;
        return t;
    }
}
--------------------编程问答-------------------- 1.返回一个集合Map,List或者返回数组数据 Object[],
2.采用JAVA的泛型,这样就灵活的实现了返回不同类型结果的方法了



import java.util.Map;

public class Test<T>
{
    
    public T get()//实例方法
    {
        T t = null;
        return t;
    };
    
    public <K> K getKey()//实例方法
    {
        K k = null;
        return k;
    }
    
    public static <V> V getValue()//静态方法
    {
        V v = null;
        return v;
    }
    
    public static void main(String[] args)
    {
        Test<String> test = new Test<String>();
        
        String stringValue =test.get();
        
        Integer intValue =test.<Integer>getKey();
        
        Map mapvalue =Test.<Map>getValue();
    }
}
--------------------编程问答-------------------- 楼上的各位谢谢了。我挨个试试。
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,