苦荞米
2021-07-20 10:50
采纳率: 66.7%
浏览 42

java 里面有没有类似C#中out关键字的这种功能?

在C#中,可以这么做:

using System;

namespace ConsoleApplication
{
    internal static class Program
    {
        public static void Main(string[] args)
        {
            A a;
            buildA(out a);
            Console.WriteLine(a.i); //输出100
        }

        private static void buildA(out A a)
        {
            a = new A();
            a.i = 100;
        }
    }
    class A
    {
        public int i;
    }
}

但是放到java中,却做不到这一点。

public class Main {
    public static void main(String[] args) {
        A a = null;
        buildA(a);
        System.out.println(a); // 输出null
    }
    private static void buildA(A a) {
        a = new A();
        a.i = 100;
    }
}
class A {
    public int i;
}

C#敲习惯了,现在转学java,没有out关键字非常难受,想问java可以通过什么办法实现这种类似C# out关键字的功能?

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

2条回答 默认 最新

  • 砻谷踏碓 2021-07-20 10:54
    已采纳

    没有,只能借助传递对象来实现改值,用数组也行

    点赞 1 打赏 评论
  • li.siyuan 2021-07-20 11:28

    将返回类型修改

        public static void main(String[] args) {
            A a = buildA();
            System.out.println(a); // 输出a
        }
        private static A buildA() {
            a = new A();
            a.i = 100;
            return a;
        }
    
    

    请采纳

    点赞 打赏 评论

相关推荐 更多相似问题