我有一个名为Book的类的数组,其中包含三个字段, int pYear,字符串名称和字符串作者。现在我想初始化数组中的所有pYear。有没有比这更快的方法:
bList[0].pYear=1996;
bList[1].pYear=1998;
bList[2].pYear=2000;
等等?
答案 0 :(得分:0)
如果“更快”意味着输入更少的代码,您可以执行以下操作:
int[] years = {1996,1998,2000,...};
for (int i = 0; i < years.length && i < bList.length; i++)
bList[i].pYear = years[i];
当然最好将pYear
设为私有,并使用setter方法而不是直接赋值。
在java 8中,您可以将其缩减为两行:
int[] years = {1996,1998,2000,...};
IntStream.range(0,bList.length).forEach(i->bList[i].pYear = years[i]);
答案 1 :(得分:0)
如果你有一个具有多个字段的特定Object(类),那么可能是糟糕的设计(但不是不可接受的设计,特别是如果这是一个赋值)来按每个字段而不是每个对象初始化它。
如果有很多对象,您可以使用图书的“字段”数据创建一个简单的json或xml文件,并使用BufferedReader
创建一个简单的加载器,为List<Book>
创建一个new Book(year, name, author);
import ...
@ControllerAdvice
public class SpringExceptionResolver {
Logger logger = LoggerFactory.getLogger("com.realitylabs.event.controller.RecoverController");
@ExceptionHandler({CorruptedSessionUserException.class})
@ResponseBody
@ResponseStatus(value=HttpStatus.FORBIDDEN)
public ErrorObject userNotFoundExceptionHandler() {
// Handle exception
// log using the logger.
// We usually return an error object in JSON so that we can show custom // error messages.
}
}
1}},如果需要,你可以转换为数组。