2014-02-10 4 views
0

Предположим, у меня есть строки под названием samplestringМожем ли мы объявить тип данных из строки в Java

String samplestring="int"; 

может я объявить переменную с именем «samplenumber» с типом Int, как этот

samplestring samplenumber; 

вместо

int samplenumber; 
+4

Short Anwer: нет. Более длинный ответ: вам нужно использовать рефлексию для этого. Но только с экземпляром класса Integer, а не с примитивным типом. – NeplatnyUdaj

+0

Нет .. Компилятор должен понять тип/детали всех ваших переменных перед компиляцией. – TheLostMind

+4

Короткий ответ: Нет. Длинный ответ: Nooooo. – Maroun

ответ

0

Вы можете бросить объект с отражением, как это:

String datatype = "java.lang.Integer"; 
Object integer = 42; 
Object castedInteger = null; 

try { 
    Class intClass = Class.forName(datatype); 
    castedInteger = intClass.cast(integer); 

    System.out.println(integer.getClass() + " " + castedInteger.getClass()); 
} catch (ClassNotFoundException e) { 
     e.printStackTrace(); 
} 

Но честно: зачем вам это нужно? Вывод будет:

класс класс java.lang.Integer java.lang.Integer

Смежные вопросы