「多个返回值java」多个返回值的函数

博主:adminadmin 2022-11-25 10:04:08 89

今天给各位分享多个返回值java的知识,其中也会对多个返回值的函数进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java 如何能在一个方法中返回多个值?

   最开始说一下我使用的解决办法:Pair 和 Triple

   偶然看到这个问题,浏览量也很大,还是写一下我认为最好的办法吧,跟大家交流一下。

说一下前面的人答的方案,都可以解决问题,但是觉得不太好。您要是说 可以解决问题就行,那我无话可说。写代码如果只是为了完成任务,不考虑实现是否优雅 和咸鱼有什么区别呢。

数组明显不合适,数组适合放同一类型的数据,当然,你可以使用ListObject,用Object 放结果,调用方需要知道Object的实际类型并做强制转换,不够优雅,差评

MapString,Object 是一种能解决问题的做法,使用Object 来放结果也存在调用方需要知道其实际类型并做强转的问题,用key 作区分,方法调用者需要知道方法内部的key ,即使使用全局变量做key 也不够优雅

自定义对象,新建一个类,例如 public class DoubleResultA, B{getter; allArgsConstructor;}、public class TripleResultA, B, C{getter; allArgsConstructor;

} ,效果棒棒的

   接下来要说的 Pair 和Triple 就是上面第三种方案的实现。org.apache.commons.lang3.tuple.Pair,org.apache.commons.lang3.tuple.Triple 是commons-lang包里的两种元组类型。PairL,R可以存两个数据,TripleL,M,R 可以存三个,再多 那么考虑一下你的方法是否可以拆一下。

  简单说一下他们的用法吧。

Pair 初始化:

Pair.of(L left, R right);

例:Pair.of("a","b");

或:

PairObject,Object pair = new PairObject, Object() {

 @Override

   public Object getLeft() {

      return null;

   }

   @Override

   public Object getRight() {

      return null;

   }

   @Override

   public Object setValue(Object value) {

      return null;

   }

};

Triple 初始化:

Triple.of(L left, M middle, R right)

或:

TripleObject, Object, Object triple = new TripleObject, Object, Object() {

      @Override

      public Object getLeft() {

         return null;

      }

      @Override

      public Object getMiddle() {

         return null;

      }

      @Override

      public Object getRight() {

         return null;

      }

   };

Pair 获取内容:

pair.getKey();

pair.getValue();

Triple 获取内容:

triple.getLeft();

triple.getMiddle();

triple.getRight();

另外org.apache.commons.lang3.tuple 包下还有ImmutablePair、ImmutableTriple、MutablePair、MutableTriple 分别对应两种结构的不可变和可变类型,大家可以自行探索。

如何在java 方法中返回两个值

java中每个方法的返回值,有且仅有一个,因为方法中一旦使用return语句返回返回值,整个方法就会结束,下面的语句也将不会执行。

java中如果想返回多个值的话,可以采用数组和集合进行存储,然后返回集合或者数组即可。其中数组用来封装基本数据类型的数据,集合用来封装对象数据。可以根据返回值的实际类型来选择容器。

方法的返回值可以有多个吗?(java)

返回值

只能有一个。。但是返回的可以使

任和

的对象。所以你可以吧你想要的多个值分装到一个javaBean中。获取后直接返回这个javaBean。然后用get方法取出来就可以了。。

java方法如何返回多个值?

static class CalculationResult {

        //和

        private double sum;

        //差

        private double discrepancy;

        //积

        private double product;

        //商

        private double quote;

        public double getSum() {

            return this.sum;

        }

        public void setSum(double sum) {

            this.sum = sum;

        }

        public double getDiscrepancy() {

            return this.discrepancy;

        }

        public void setDiscrepancy(double discrepancy) {

            this.discrepancy = discrepancy;

        }

        public double getProduct() {

            return this.product;

        }

        public void setProduct(double product) {

            this.product = product;

        }

        public double getQuote() {

            return this.quote;

        }

        public void setQuote(double quote) {

            this.quote = quote;

        }

        @Override

        public String toString() {

            return "CalculationResult{" +

                    "sum=" + sum +

                    ", discrepancy=" + discrepancy +

                    ", product=" + product +

                    ", quote=" + quote +

                    '}';

        }

    }

    /**

     * 使用对象返回

     *

     * @param numA

     * @param numB

     * @return

     */

    private static CalculationResult calcTwoNum(double numA, double numB) {

        CalculationResult result = new TestEntry.CalculationResult();

        result.setSum(numA + numB);

        result.setDiscrepancy(numA - numB);

        result.setProduct(numA * numB);

        result.setQuote(numA / numB);

        return result;

    }

    /**

     * 使用map返回

     *

     * @param numA

     * @param numB

     * @return

     */

    public static MapString, Double calcTwoNumMap(double numA, double numB) {

        MapString, Double mapRtn = new HashMapString, Double();

        mapRtn.put("sum", numA + numB);

        mapRtn.put("discrepancy", numA + numB);

        mapRtn.put("product", numA * numB);

        mapRtn.put("quote", numA / numB);

        return mapRtn;

    }

    public static void main(String[] args){

        //返回对象调用

        System.out.println(calcTwoNum(1, 3));

        //返回map调用

        System.out.println(calcTwoNumMap(2, 8));

    }

在java里,一个方法能返回多个值吗

可以返回一个对象,对象可以封装多个属性

比如:return user;

这个就是返回user这个对象,这个对象可以有学号,姓名,性别等属性

通过user.getName()获得姓名,user.getNumber()获得学号等

java中一个方法可以有多种返回值吗

返回值只能有一个。。但是返回的可以使任和的对象。所以你可以吧你想要的多个值分装到一个javaBean中。获取后直接返回这个javaBean。然后用get方法取出来就可以了。。

关于多个返回值java和多个返回值的函数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-25,除非注明,否则均为首码项目网原创文章,转载请注明出处。