代码娱乐者
2017-09-16 04:46
采纳率: 81.3%
浏览 5.5k
已采纳

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

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

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

10条回答 默认 最新

  • 叮咚呛咚呛 2017-09-16 06:58
    已采纳

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

    已采纳该答案
    5 打赏 评论
  • 编程爱好者熊浪 2017-09-16 05:17

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

    2 打赏 评论
  • 随身备纸巾 2017-09-16 06:37

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

    1 打赏 评论
  • 举头三尺有宋浩 2017-09-16 06:06

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

    打赏 评论
  • 鼠小 2017-09-16 06:43

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

    打赏 评论
  • senga07 2017-09-16 06:58

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

    打赏 评论
  • 逝水乄流年 2017-09-16 07:54

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

    打赏 评论
  • Mr_aLIEz 2017-09-16 08:10

    就返回object就OK啦

    打赏 评论
  • 秦城季 2017-09-16 11: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);
            }
        }
    }
    
    
    打赏 评论
  • 以伽利略之名 2017-09-16 17:47

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

    打赏 评论

相关推荐 更多相似问题