如何使用Object ...作为参数调用方法

时间:2018-06-01 14:33:58

标签: java

我想知道如何调用期望Object的类方法...(Object []) 作为参数。

我现在无法在编译时知道我需要传递给它的许多参数, 所以我不能像const { dialog, ipcMain, BrowserWindow} = require('electron'); const {url} = require('url'); var net = require('net'); var spawn = require('child_process').exec; var cam; class streamHandler { constructor(){ this.sendAndReceiveMessageListener(); } sendAndReceiveMessageListener(){ ipcMain.on('http-request', (event)=>{ let message = "Starting the video stream"; cam = spawn('"C:\\Program Files (x86)\\VideoLAN\\VLC\\vlc.exe" --qt-start-minimized rtsp://192.168.0.75/live --sout "#transcode{acodec=vorb, vcodec=theo}:standard{access=http, mux=ogg, dst=localhost:8090/}"', function(error, stdout, stderr){}); event.sender.send('http-response', (message)); }); ipcMain.on('http-end-stream-request', (event)=>{ let message = "Video stream ended."; if (typeof cam !== 'undefined' && cam !== null){ cam.kill(''); } event.sender.send('http-end-stream-response', (message)); }); } spawnVLC(){ console.log() } } module.exports = new streamHandler(); 那样。

我正在进行大型建设,如:

somemethod(1,2,3,4,5)

我试图通过if (param.lengts()==5) { somemethod(1,2,3,4,5); } elseif (param.lengts()==4) somemethod(1,2,3,4); .... List<>,但没有成功。 有一个简单的方法如何将我的动态数组转换为方法?我不能改变方法构造函数。

调用方法的问题,而不是方法内的声明或读取参数。

3 个答案:

答案 0 :(得分:1)

您可以使用变量参数:

private void PictureBox_MouseDown(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Left)
    {
        //Handle mouse down logic here (press).
    }
}

private void PictureBox_MouseMove(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Left)
    {
        //Handle mouse move logic here (hold).
    }
}

private void PictureBox_MouseUp(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Left)
    {
        //Handle mouse up logic here (release).
    }
}

并称之为:

private void somemethod(Integer.. array) {
}

如果你有一个arraylist作为输入,你可以这样传递:

somemethod()    
somemethod(1)    
somemethod(1,2)

答案 1 :(得分:1)

传递数组。

df.End += df.Start

答案 2 :(得分:0)

您可以使用var args:

方法声明:

void somemethod(Object ...){ }

并使用您需要的参数调用此方法。