Отражение в основном связано с тем, что компилятор решил оставить в виде следов кода, который может запросить код выполнения. C ++ славится тем, что не платит за то, что вы не используете; потому что большинство людей не используют / не хотят отражения, компилятор C ++ избегает затрат, не записывая ничего .
Итак, C ++ не дает отражения, и это не легко «имитировать» себя как общее правило, как отмечали другие ответы.
В разделе «другие методы», если у вас нет языка с отражением, получите инструмент, который может извлечь информацию, которую вы хотите во время компиляции.
Наш DMS Software Reengineering Toolkit - это обобщенная технология компилятора, параметризованная явными определениями langauge. Он имеет определения langauge для C, C ++, Java, COBOL, PHP, ...
Для версий C, C ++, Java и COBOL он обеспечивает полный доступ к деревьям синтаксического анализа и информации таблицы символов. Эта информация таблицы символов включает в себя данные, которые вы, скорее всего, захотите от «отражения». Если вы хотите перечислить некоторый набор полей или методов и сделать что-то с ними, DMS может использоваться для преобразования кода в соответствии с тем, что вы находите в таблицах символов произвольным образом.
Можно попробовать это в Действии:
getResources().getString(R.string.your string name);
В других ситуациях как фрагменты... используйте
getContext().getResources().getString(R.string.your string name);
Если Вы wannt получаете его в действии или fragmnet, то:
getContext().getResources().getString(R.string.string_name);
, Если Вы хотите получить его от класса за пределами действия или фрагмента, где у Вас нет контекста действия затем, используют контекст приложения:
getApplicationContext().getResources().getString(R.string.string_name);