我们正在将一些.NET 3.5代码转换为Java(Android)。
此Java代码提供错误:
令牌“章节”上的语法错误,此令牌后的VariableDeclaratorId
this.add (new Book() {Chapters=50, OneBasedBookID = 1,
Long = "Bahai", Short = "ba", Color = c, BookType = b; });
类型都是正确的。
答案 0 :(得分:5)
您正在使用.NET / C#在创建对象时初始化属性的能力。要用Java(或旧的C#)来完成它,你将不得不做很长的事情。
Book book = new Book();
book.Chapters = 50;
// etc
this.add(book);
答案 1 :(得分:3)
Java没有object initializers,因此该语法无效。
相反,你可能希望做这样的事情:
Book book = new Book();
book.Chapters = 50;
book.OneBasedBookID = 1;
book.Long = "Bahai";
book.Short = "ba";
book.Color = c;
book.BookType = b;
this.add(book);
另请注意,Java也没有"proper" properties的概念,典型的“好”做法是使用getter / setter,而不是以大写字母开头命名变量。但这对您的Long
和Short
成员无效,总体而言,这些做法可能无法为您的方案提供任何价值。
答案 2 :(得分:1)
您可以使用匿名类初始化技巧:
this.add (new Book() {{
Chapters=50;
OneBasedBookID = 1;
Long = "Bahai";
Short = "ba";
Color = c;
BookType = b;
}});