Luk*_*der 9 java language-agnostic parameters out-parameters
在PL/SQL(或许多其他语言)中,我可以使用IN OUT或OUT参数,这些参数是从过程返回的.如何在Java中实现类似的功能?
我知道这个伎俩:
public void method(String in, String[] inOut, String[] inOut2) {
inOut[0] = in;
}
Run Code Online (Sandbox Code Playgroud)
其中in参数表示IN参数,inOut参数可以包含返回值.惯例将String[] inOut是一个数组inOut.length == 1.
那有点笨拙.
编辑反馈答案:其他技巧包括:
有没有人知道更好的方法来实现这一目标?我需要一般解决方案的原因是因为我想在数据库模式中从PL/SQL生成便利源代码.
T.J*_*der 10
我的问题是:为什么不method 归还某些东西?而不是设置输入/输出参数?
但是假设你绝对,肯定必须有一个输入/输出参数,这是一个完全不同的问题,那么数组技巧就可以了.或者,它并没有那么笨拙,但另一种方法是传入一个对象引用:
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);
}
Run Code Online (Sandbox Code Playgroud)
(或者,当然,只是value公开.)看?我说它并没有那么笨拙.
但是我再问一次:不能method回复什么?如果它需要返回多个东西,它不能返回具有这些东西属性的对象实例吗?
偏离主题:这是我非常喜欢C#方法的领域之一.反对输入/输出参数的一个论点是它们在你调用函数的时候还不清楚.因此,通过在函数声明和调用它时指定关键字,C#可以使它变得清晰.在没有那种语法帮助的情况下,我会避免"模拟"输入/输出参数.