如何在Java中创建IN OUT或OUT参数

在PL / SQL(或许多其他语言)中,我可以具有从过程返回的IN OUT或OUT参数。如何在Java中实现类似的目的?

我知道这个窍门:

public void method(String in, String[] inOut, String[] inOut2) {

inOut[0] = in;

}

其中in参数表示IN参数,并且inOut参数可以包含返回值。约定String[] inOut是的数组inOut.length == 1

有点笨拙。

:其他技巧包括:

  • 持有人/包装师类,但我不想介绍任何新类型,回调等。
  • 返回值:我想要一个 解决方案。即一个涉及多个IN OUT参数。
  • IN OUT参数的包装器作为返回值:这是一个可行的选择,但仍然不是很好,因为必须以某种方式生成该包装器

有谁知道实现这一目标的更好方法?我需要通用解决方案的原因是因为我想在数据库模式中从PL / SQL生成便捷源代码。

回答:

我的问题是:为什么不method退货 ?而不是设置输入/输出参数?

但是假设您 绝对肯定 要有一个in / out参数,这是一个完全不同的问题,那么数组技巧就可以了。另外,它也不少笨拙,但另一种方法是传入对象引用:

public class Foo {

private String value;

public Foo(String v) {

this.value = v;

}

public String getValue() {

return this.value;

}

public void setValue(String v) {

this.value = v;

}

}

// ....

public void method(String in, Foo inOut) {

inOut.setValue(in);

}

(或者,当然,只是value公开。)看到了吗?我说这还不算笨。

但是我会再问:不能method退货吗?而且,如果需要返回多个事物,是否不能返回具有这些事物属性的对象实例?

这是我真正喜欢C#方法的领域之一。反对输入/输出参数的参数之一是,在 调用 函数时它们不清楚。因此,C#通过在函数的声明

调用时都指定关键字来使您更清楚。在没有这种语法帮助的情况下,我将避免“模拟”输入/输出参数。

以上是 如何在Java中创建IN OUT或OUT参数 的全部内容, 来源链接: utcz.com/qa/417897.html

回到顶部