Итак, я пишу код, который включает в себя расширение класса, который я ранее написал, в котором файлы создаются именовались с использованием конструктора, который принимает имя и размер типа длинный. В этом исходном классе я проверил внутри конструктора, что введенное имя файла содержит один «.». но не требует определенного расширения в файле. Для этого нового класса, который я пишу, мне требуется расширение имени «.mp3». Однако мой компилятор не любит проверку перед супер-конструктором.Проверка правильности переменной перед вызовом суперструктора
Это мой текущий код:
public class Song extends DigitalMedia{
private String artist;
private String album;
private String name;
private long size;
public Song(String aName, long aSize, String aArtist, String aAlbum){
super(aName, aSize);
setArtist(aArtist);
setAlbum(aAlbum);
}
Есть ли способ, чтобы проверить, что «aName» содержит».mp3" , прежде чем создать этот конструктор?
@J Zane Я предлагаю вам изучить иерархию вызовов конструктора и понять, почему она сконструирована таким образом, что сначала необходимо вызвать суперкласс класса. Когда мы учимся, мы не должны просто переваривать факты, но должны попытаться найти ответ, как именно так, что случилось бы, если бы это было не так. Также я предлагаю вам изучить, что произойдет, если исключение будет отправлено из конструктора. Я попытался немного рассказать об этом в своем ответе, http://stackoverflow.com/a/42179930/504133 –