2 qq 38000753 qq_38000753 于 2017.09.16 12:46 提问

java 一个方法返回不同的数据类型

有一个接口,需要在一个方法里面return一个map或者string类型的数据,能有办法做到吗?

10个回答

jkl012789
jkl012789   2017.09.16 14:58
已采纳

返回一个Object滴就可以啦 到时候你就做个对象类型校验 然后强转一下 OK

q690080900
q690080900   2017.09.16 14:06

做不到的 返回值都是固定的

xionglangs
xionglangs   Rxr 2017.09.16 13:17

新建一个类,里面包含string和map,返回它。

linqin107412
linqin107412   2017.09.16 14:37

你在方法里面把它转成json格式,封装之后返回不可以?

gates0087
gates0087   2017.09.16 14:58

可以把string和map都放在一个list里返回

qq_39497330
qq_39497330   2017.09.16 15:54

来个Object数组返回,什么类型通通给你返了,后面你取出来什么类型接收就是,不行就强转。

Mr_aLIEz
Mr_aLIEz   2017.09.16 16:10

就返回object就OK啦

github_38117599
github_38117599   2017.09.16 19:36

贴一个例子,随便附上回调的帖子:http://blog.csdn.net/github_38117599/article/details/68069868

package com.xhunmon.reflesh;


import java.util.Map;

class Test{

    public interface ITest {
        Object test();
    }

    public void setITest(ITest iTest){
        new Thread(new MyThread(iTest)).start();
    }

    private class MyThread implements Runnable{

        private final ITest test;

        public MyThread(ITest test) {
            this.test = test;
        }

        @Override
        public void run() {
            Object test = this.test.test();
            if(test instanceof String){
                System.out.printf(String.valueOf(test));
            }else if(test instanceof Map){
                Map map = (Map) test;
                //处理test
            }
        }
    }
}

public class MainTest{
    public static void main(String args[]) {
        Test test = new Test();
        Test.ITest iTest = new Test.ITest() {
            @Override
            public Object test() {

                return "我给你返回数据了.....";
            }
        };
        for(int i=0; i<10; i++){
            test.setITest(iTest);
        }
    }
}

weixin_39521929
weixin_39521929   2017.09.17 01:47

只能返回一个类型,但你知道C#的in 和out参数的话,就不一样了,不过实现得话估计还没楼上大佬来的简单
还有就是看map的类型了,若map可以包含string到你指定的某个键位上,要map返回的就是map,要string就返回map再map[keystring].tostring()
这个keystring就是你用来存string所特指定key,不过不知道你map的键值是啥类型也不好说

Small_Mouse0
Small_Mouse0   Ds   Rxr 2017.09.16 14:43

【不能】直接返回一个map或者string类型,返回值类型一个方法只能有一个

Csdn user default icon
上传中...
上传图片
插入图片