Это мои файлы:
$ tree
.
├── Main.java
└── life
└── Person.java
Main.java
import life.Person;
public class Main {
public static void main(String[] args) {
Person p = new Person();
p.sayHi();
}
}
И я пытаюсь скомпилировать этот код:
$ javac Main.java -d .
$ java Main
hello world
Да, это былохорошо.Но когда я пытаюсь использовать отражение, я меняю свой Main.java следующим образом:
import life.Person;
public class Main {
public static void main(String[] args) {
Class person = Class.forName("life.Person");
}
}
И компилятор выдает ошибку:
$ javac Main.java -d .
Main.java:6: error: unreported exception ClassNotFoundException; must be caught or declared to be thrown
Class person = Class.forName("life.Person");
Я очень запутался, почему этот кодпервый успех и неудачный следующий?
Почему класс не найден?