编程语言
首页 > 编程语言> > Java中有没有办法将多个参数对传递给方法?

Java中有没有办法将多个参数对传递给方法?

作者:互联网

Java来说很新

我希望能够以下面的方式使用一种方法;

class PairedData {
    String label;
    Object val:
}


public void myMethod(String tablename, PairedData ... pD) {
    /* 
    insert a record into a table -tablename with the various fields being
    populated according to the information provided by the list of 
    PairedData objects
    */
}

myMethod("firststring",{"field1",Date1},{"field2",12},{"field3","aString"});

我意识到语法无效,但我希望它能给出我想要做的事情的要点.

我想要做的是直接传递数据而不是填充类的实例然后传递它们.这是可能的还是我只想破坏大量的OOP规则?

解决方法:

不,你真正想做的事情是不可能的.在我看来,将类的实例传递给方法会好得多,而不是像使用这样的数组进行复杂的操作.另一个答案建议使用Object [] varargs参数 – 这可能是你获得的最接近你所展示的例子.另一种选择(我认为更好的选择)将是

public void myMethod(String tablename, String[] labels, Object[] vals) {

您可以为这些数组中的每个标签[i]和vals [i](将它们配对)实例化您的类.换句话说,在你的方法中你可以有类似的东西

pD = new PairedData[labels.length];

for (i = 0; i < labels.length; i++)
    pD[i] = new PairedData(labels[i], vals[i]);  // assuming you
                                                 // added this
                                                 // constructor

然后将您包含的方法调用示例转换为

myMethod("firststring", new String[]{"field1", "field2", "field3"}, 
                                             new Object[]{date1, 12, "aString"});

标签:java,recordset
来源: https://codeday.me/bug/20190901/1782837.html