在java中创建一个包含未知数量和类型参数的方法

时间:2014-02-14 12:19:27

标签: java primefaces datatable variadic-functions

我正在使用primefaces数据表,同时我正在使用Triple数据存储(Jena TDB)而不是传统数据库。我将在下面创建一个像primefaces展示样本的对象; 公共汽车{

    private String model;
    private int year;
    private String manufacturer;
    private String color;

    public Car(String model, int year, String manufacturer, String color) {
            this.model = model;
            this.year = year;
            this.manufacturer = manufacturer;
            this.color = color;
    }

    public String getModel() {
            return model;
    }

    public void setModel(String model) {
            this.model = model;
    }

    public int getYear() {
            return year;
    }

    public void setYear(int year) {
            this.year = year;
    }

    public String getManufacturer() {
            return manufacturer;
    }

    public void setManufacturer(String manufacturer) {
            this.manufacturer = manufacturer;
    }

    public String getColor() {
            return color;
    }

    public void setColor(String color) {
            this.color = color;
    }

}

这里一切都很清楚,汽车对象有明确的参数,如模型,年份......但是在我的程序中,基于菜单栏中的用户选择,我必须调用具有各种属性作为参数的完全不同的对象并执行相同的操作如展示所示。我是java的新手,我真的很困惑如何解决这个问题。 例如,我的程序对象可以是具有(名称,地址,电子邮件,电话,...)参数的公司,或者它可以是具有完全不同属性的计算机,如(名称,型号,生产日期,规格等)。 。

提前感谢您的回复。

1 个答案:

答案 0 :(得分:1)

不完全理解您提供的解释。我可以给你一个反对你的标题的答案:在java中创建一个未知数量和参数类型的方法

您可以将Java args与Object类一起使用。

package com.misc;

public class NNumberOfObj {
    public static void acceptNNumberOfAnyTypeofObjects(Object... args) {
        System.out.println("Total objects are: " + args.length);
        //Your further implementation goes here.
    }
    public static void main(String[] args) {
        String s = new String("Nikhil");
        Integer i = 10;
        Employee emp = new Employee(10, "Kunal");
        acceptNNumberOfAnyTypeofObjects(s, i, emp);
    }
}

class Employee {
    private int id;
    private String name;
    public Employee(int id, String name) {
        this.id = id;
        this.name = name;
    }
}