Java中的字段初始化类似于C中的字段初始化#
java不允许像C一样初始化字段吗 我想我在什么地方读过。但我找不到它,因为字段初始化似乎是另一回事 java不允许像C一样初始化字段吗 是的 但是这个Java中的字段初始化类似于C中的字段初始化#,java,c#,Java,C#,java不允许像C一样初始化字段吗 我想我在什么地方读过。但我找不到它,因为字段初始化似乎是另一回事 java不允许像C一样初始化字段吗 是的 但是这个 return new MyClass { // doesn't work in Java var1 = myVar1, var2 = myVar2, var3 = myVar3 }; 不是字段初始化,在C#中称为对象初始化,java不提供这种语法 java不允许像C一样初始化字段吗 是的 但是这个
return new MyClass { // doesn't work in Java
var1 = myVar1,
var2 = myVar2,
var3 = myVar3
};
不是字段初始化,在C#中称为对象初始化,java不提供这种语法
java不允许像C一样初始化字段吗
是的
但是这个
return new MyClass { // doesn't work in Java
var1 = myVar1,
var2 = myVar2,
var3 = myVar3
};
不是字段初始化,在C#中称为对象初始化,java不提供这种语法。不,java不允许这样。Java语法没有提供等效的语法。您可以更接近于初始化匿名类,但这不是一回事
因此,真正的答案是Java不支持字段初始化,但支持C#不支持的匿名类实例化 不,Java不允许这样做。Java语法没有提供等效的语法。您可以更接近于初始化匿名类,但这不是一回事
因此,真正的答案是Java不支持字段初始化,但支持C#不支持的匿名类实例化 java中没有等价物。但在Java8中,您可以像c#对象初始化一样进行模拟。首先定义这样一个函数
public static <T, R> R apply(final T t, final Function<T, R> function) {
return function.apply(t);
}
final McTrack track = Util.apply(new McTrack(), mcTrack -> {
mcTrack.setArea(Util.apply(new Area(), area -> {
area.setId(1L);
area.setName("Dhaka South");
area.setRegion(Util.apply(new Region(), region -> {
region.setId(1L);
region.setName("Dhaka");
return region;
}));
return area;
}));
mcTrack.setId(1L);
mcTrack.setDate(new Date());
return mcTrack;
});
我发现它非常有用。在java中没有等价物。但在Java8中,您可以像c#对象初始化一样进行模拟。首先定义这样一个函数
public static <T, R> R apply(final T t, final Function<T, R> function) {
return function.apply(t);
}
final McTrack track = Util.apply(new McTrack(), mcTrack -> {
mcTrack.setArea(Util.apply(new Area(), area -> {
area.setId(1L);
area.setName("Dhaka South");
area.setRegion(Util.apply(new Region(), region -> {
region.setId(1L);
region.setName("Dhaka");
return region;
}));
return area;
}));
mcTrack.setId(1L);
mcTrack.setDate(new Date());
return mcTrack;
});
我发现它非常有用。“像C#does”-这句话是什么意思?“像C#does”-这句话是什么意思?@aleroot阅读了完整的答案是的,但第一部分是wrong@aleroot类X{int i=5;}不是字段初始化否,Java不像c#那样支持字段初始化。请阅读我的答案或文档。哦,我的天哪,@aleroot,好吧,没有。Ramanlfc好的,是的。@aleroot阅读完整答案是的,但第一部分是wrong@aleroot类X{int i=5;}不是字段初始化否,Java不像c#那样支持字段初始化。请阅读我的答案或文档。哦,我的天哪,@aleroot,好吧,没有。好的,是的。