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