Так у меня есть класс Java, с 3-х частных полейЧастный член доступен?
public class Parcel {
private String guid;
private List<String> files;
private String zipFileName;
public Parcel (List<String> files, String zipFilePath){
UUID uuid = UUID.randomUUID();
guid = uuid.toString();
zipFileName = zipFilePath + File.separator + guid + File.separator + ".zip";
if ((files != null) && (!files.isEmpty())){
this.files = files;
}
}
}
Теперь я пишу тест JUnit, чтобы проверить эти частные поля
public class ParcelTest {
@Test
public void parcelObject() {
String zipFilePath = "/path/to/folder";
List<String> files = new ArrayList<String>();
files.add("/path/to/folder/test1");
files.add("/path/to/folder/test2");
Parcel parcel = new Parcel(files, zipFilePath);
Class<? extends Parcel> parcelClass = parcel.getClass();
try {
Field guid = parcelClass.getDeclaredField("guid");
guid.setAccessible(true);
System.out.println(guid.get(parcel));
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchFieldException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Я получаю сообщение об ошибке при попытке получить доступ к собственной GUID раздел. Я пробовал это даже после создания нулевого конструктора аргументов. как я могу получить доступ к частным членам здесь?
EDIT Я понял, и я обновил свой ответ, если кому-то это понадобилось.
P.S: Как я могу закрыть этот вопрос>
Что вы должны сделать, это создать ответ на ваш вопрос, содержащий материал выше, а затем принять его , –