我已经做了12年的Java,最近我一直在做Javascript,我想知道Java社区是否考虑过某种灵活的构造函数机制。
Java中的构造函数可能会变得混乱。如果有许多不同的路径来创建对象,那么每个都需要一个构造函数。
如果你有一个构造函数可以放入你喜欢的任何值与类内部字段相匹配的内容,那该怎么办:
Person p = new Person([
name:’bob’,
height:123,
address:new Address([
street:’asdf’,
postcode:4232
])
]);
(我在这里使用方括号,但你需要一些其他符号,因为这会与Java中的数组冲突)
然后,您可以定义类中的哪些字段可以在带有注释的构造函数组合中使用:
public class Person{
@constructable
private String name;
@constructable
private int height;
@constructable
Private Address address;
.....
}
public class Address {
@constructable
private String street;
@constructable
private String postcode;
@constructable
private String city;
.....
}
这都是语法糖。在编译期间,编译器将计算出类所需的所有构造函数并相应地更新类。
有没有像这样的人提出过JSR?
这是否打破了Java背后的核心理念? (即。构造函数不应该如此不受限制)
答案 0 :(得分:2)
这主要可以通过Builder模式实现。当创建对象需要大量信息时,这非常有用。