我正在尝试在Java中创建一个将"选项"作为param的对象。
我更熟悉JavaScript-这就是我的写作方式。
function Person(options) {
for (var prop in options) {
this[prop] = options[prop];
}
var registerUser = function() {
console.log(options.name);
}
registerUser();
}
var chris = new Person({
name: 'Chris',
age: '23'
});
var molly = new Person({
name: 'molly',
age: '41'
});
- Java是否支持此?
~~预先感谢
您在寻找varargs吗?类似:
public Person(String... args){
String name = args[0];
String x = args[1];
}
Person p = new Person("Billy", "testing");
no,Java对这些东西有些详细 - 您的Options
类必须是预定的,并且您需要一个一个一个一个。通常在Java,您会有一个建筑商。对于这种特殊情况,它看起来很过分,但是它使您拥有一个不变的Person
,可以使用构建器配置。
另一个更骇客的选项是使用反射或apache commons-beanutils的 BeanUtils
/ PropertyUtils
。因此,您通过Map<String, Object>
,然后迭代地图并将每个属性设置为Person
对象。
建造者可能看起来像这样:
public class PersonBuilder {
private String name;
private int age;
public PersonBuilder withName(String name) {
this.name = name;
return this;
}
public PersonBuilder withAge(int age) {
this.age = age;
return this;
}
public Person build() {
return new Person(this);
}
}
public class Person {
private String age;
private String name;
public Person(PersonBuilder builder) {
//assign properties one by one
}
}