[英]converting list of one type to another in java
我有一個文件類型列表,我需要將其轉換為另一種類型。 但它給出了一個錯誤Attempt to invoke interface method 'java.util.stream.Stream java.util.List.stream()' on a null object reference
。
我有這個要轉換的非空列表“文件”
List<File> files = FileUtils.listFilesInDirWithFilter(directory,fileFilter,true);
List<MyClass> customer = files.stream()
.filter(MyClass.class::isInstance)
.map(MyClass.class::cast)
.collect(Collectors.toList());
有什么辦法可以將其更改為我需要的類型嗎?
我想你可以使用這個:
files.stream()
.map(aClass -> instantiateClass(aClass, "message"))
.filter(Objects::nonNull)
.findFirst()
.orElseThrow(() -> new CustomException("blabla"));
方法instantiateClass
:
private MyClass instantiateClass(final Class<?> aClass, final String message) {
MyClass returnedClass= null;
try {
returnedClass = (MyClass) aClass
.getDeclaredConstructor(String.class) // should contain the same parameters count and types like your constructor in MyClass
.newInstance(message);
} catch (Exception e) {
log.error("The declared constructor for class {} was not found", aClass.getName());
}
return returnedClass;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.