Вы не можете, вы можете получить имя класса переменной экземпляра, но «экземпляр переменной экземпляра» имеет свой собственный класс (он все еще объект).
Так student.name.class
вернется String
, student.class
вернет Student
.
Если вам нужна такая привязка (студенческое имя => класс ученика), вы должны написать свою собственную систему, чтобы отслеживать ее. Но в любом случае ваша система не может запретить кому-либо писать «John Doe» где угодно и требовать ее переменную экземпляра для объекта Student
.
Отсутствует язык программирования, который в настоящее время я знаю, предоставляет функцию как запрошенную.
Возможно, вы хотите что-то вроде student.name = StudentName.new("John Doe")
? В этом случае вы можете определенно отслеживать это, но это зависит от вас, чтобы создать его и заставить его работать.
Вы имеете в виду, если у вас есть 'name = student.name', и вы хотите получить' Student' из переменной 'name'? Если это так, вы не можете. В этом пункте 'name' является только нормальной строкой. –
Справа. Это верно для любого типа объекта? Я имею в виду, что если бы вместо строки у меня был произвольный объект, такой как student.personality, где личность была экземпляром другого класса под названием Personality. – exbuddha
Egad! Вы задали этот вопрос всего 19 минут назад, и вы уже выбрали ответ? Почему спешка? –