Установить DefaultFileSystemProvider для тестирования
Как я могу установить DefaultFileSystemProvider
использовать, например, JimfsFileSystemProvider
? Javadoc для FileSystems.getDefault()
говорит, что мне нужно установить системное свойство, но когда я пытаюсь это сделать, я получаю NoSuchMethodException
:
System.setProperty("java.nio.file.spi.DefaultFileSystemProvider",
"com.google.common.jimfs.JimfsFileSystemProvider");
FileSystems.getDefault();
Трассировки стека:
java.lang.Error: java.lang.NoSuchMethodException: com.google.common.jimfs.JimfsFileSystemProvider.<init>(java.nio.file.spi.FileSystemProvider)
at java.nio.file.FileSystems$DefaultFileSystemHolder.getDefaultProvider(FileSystems.java:128)
....
Нужно ли устанавливать что-то еще или это ошибка в jimfs?
1 ответ
Javadoc of FileSystems.getDefault()
говорится, что:
...по умолчанию
FileSystemProvider
создается с помощью вызова конструктора с одним аргументом, чей тип формального параметраFileSystemProvider
,
поскольку JimfsFileSystemProvider
не имеет такого конструктора, вы не можете установить его в качестве файловой системы по умолчанию.
Это именно то, что означает ошибка, которую вы получите:
java.lang.Error: java.lang.NoSuchMethodException: com.google.common.jimfs.JimfsFileSystemProvider.<init>(java.nio.file.spi.FileSystemProvider)
Метод <init>
это конструктор, и не найден конструктор с параметрами java.nio.file.spi.FileSystemProvider
,