gpt4 book ai didi

Java - 将指向对象的指针传递给函数

转载 作者:行者123 更新时间:2023-11-29 05:27:52 26 4
gpt4 key购买 nike

我想要实现的是这样的:

MyClass object = null;
doStuff(&object);

// `object` can now be non-null

我目前正在做的是这个,但我认为在 Java 中必须有更好的方法来实现这个行为:

MyClassPointer pointer = new MyClassPointer(null);
// pointer.object is null
doStuff(pointer);

// pointer.object can now be non-null

最佳答案

如果您真的希望 doStuff 返回两个值:可能有更好的设计方法。不过,如果您认为让 doStuff 返回两个值确实是最好的设计,那么可以使用一个简单的辅助类来完成:

static class MyClassAndBoolean {
public MyClass obj;
public boolean b;
public MyClassAndBoolean(MyClass obj, boolean b) { this.obj = obj; this.b = b; }
}

然后将doStuff 的返回类型更改为MyClassAndBoolean。这是我认为类中的公共(public)字段没问题的极少数情况之一。由于您正在定义一个简单的类只是用作函数结果,而不是表示一个连贯的概念,所以通常关于定义访问器而不是公开字段等的担忧并不真正适用。 (附:我只是猜测另一种类型是 boolean,当然它可以是任何东西。)

另一种解决方法:

MyClass[] obj = new MyClass[1];
result = doStuff(obj);

doStuff的参数类型更改为MyClass[],并将新对象填充到parameter[0]中。我确实在某些 Java 和 Android 库方法中看到了这个习惯用法。

关于Java - 将指向对象的指针传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22076426/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com