powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / хелп Type cast
25 сообщений из 26, страница 1 из 2
хелп Type cast
    #34120529
Juga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поскажите как сделать type cast имя только имя класса в виде строки. Ну или хотя бы стандартый конструктор.
...
Рейтинг: 0 / 0
хелп Type cast
    #34120581
Йогурт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если имя класса в виде строки - то на этапе выполнения тип неизвестен, иначе зачем это надо
отсюда второй вопрос: что к чему кастить?
...
Рейтинг: 0 / 0
хелп Type cast
    #34121676
Juga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть например
String class = "java.lang.Integer";
String dig = "1";
нужно получить int i = (class)dig;
Хелп!!! как это сделать???
...
Рейтинг: 0 / 0
хелп Type cast
    #34121700
kdanylo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dlia nachala :)


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
 public   class  TestClass {
	
	 public   static   void  main(String[] args) {
		String value= "10";
		String type="Integer";
		System.out.println(Converter.convert(type, value));
		
	}

}

 class  Converter{
	
	 static  Object convert(String type, String value){
		 if  (type.equals("String"))  return  value;
		 if  (type.equals("Boolean"))  return   new   Boolean (value);
		 if  (type.equals("Integer"))  return   new  Integer(value);
		 if  (type.equals("Double"))  return   new   Double (value);
		 return   null ;
	}
		
	}
...
Рейтинг: 0 / 0
хелп Type cast
    #34121702
Juga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну это тоже вариант. Хотя мне он не очень потходит, я не знаю заранее какие типы у меня будут. Вроде как то можно через Class но не могу пока понять как.
...
Рейтинг: 0 / 0
хелп Type cast
    #34121855
Фотография МТД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JugaНу это тоже вариант. Хотя мне он не очень потходит, я не знаю заранее какие типы у меня будут. Вроде как то можно через Class но не могу пока понять как.
Используй reflections.

Показывать пример или сам сумеешь понять?
...
Рейтинг: 0 / 0
хелп Type cast
    #34121871
Juga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
покажи если не сложно
...
Рейтинг: 0 / 0
хелп Type cast
    #34121874
Фотография МТД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jugaпокажи если не сложно
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
 package  com.forward.test;

 import  java.lang.reflect.*;

 public   class  TypeCastProcessor {
     public   static   void  main(String args[]){
        
         if  (args.length <  2 ) {
            System.out.println("Use TypeCastProcessor class_name value");
            System.out.println("For example TypeCastProcessor java.lang.Integer 34");
            System.out.println("The class_name must be a class, wich have constructor with one String argument");
            System.exit( 0 );
        }
        
        String class_name = args[ 0 ];
        String dig = args[ 1 ];
        
        System.out.println("Casting '" + dig + "' for '" + class_name + "'");
        
         try {
             Class  clazz =  Class .forName(class_name);
            Constructor constructors[] =  clazz.getConstructors();
            
            Constructor myconstr =  null ;
             for  ( int  i =  0 ; i < constructors.length; i++){
                 Class  types[] = constructors[i].getParameterTypes();
                 if  (types.length ==  1  && types[ 0 ].getName().equals("java.lang.String")){
                    myconstr = constructors[i];
                     break ;
                }
            }
            
             if  (myconstr ==  null ) {
                 throw   new  Exception("Unable to find constructor with one String parameter");
            }
                         
            Object arg_list[] =  new  Object[] {dig};
            Object myobj = myconstr.newInstance(arg_list);
            
            // in myobj we have our casted object now
            
            System.out.println(myobj.getClass().getName() + " = " + myobj);
            
        }  catch  (Exception e){
            e.printStackTrace();
        }
    }
}
...
Рейтинг: 0 / 0
хелп Type cast
    #34121875
Фотография МТД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм, package-declaration можно выкинуть :)
...
Рейтинг: 0 / 0
хелп Type cast
    #34121910
Juga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Смысл ясен. Спасибо огромное!!!
...
Рейтинг: 0 / 0
хелп Type cast
    #34121919
Фотография МТД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JugaСмысл ясен. Спасибо огромное!!!
Прихадите исчо.
...
Рейтинг: 0 / 0
хелп Type cast
    #34122100
02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
02
Гость
В связи с выше сказанным может глупый, но вопрос
А как вообще в run-time узнать compile-time тип переменной?
...
Рейтинг: 0 / 0
хелп Type cast
    #34122104
Фотография МТД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
02
А как вообще в run-time узнать compile-time тип переменной?
Если это объект, то никак.
И нафик это не нужно.
...
Рейтинг: 0 / 0
хелп Type cast
    #34122245
Йогурт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
02В связи с выше сказанным может глупый, но вопрос
А как вообще в run-time узнать compile-time тип переменной?

1) instanceof

2) getClass().getName
...
Рейтинг: 0 / 0
хелп Type cast
    #34122267
Фотография МТД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
йогурт 02В связи с выше сказанным может глупый, но вопрос
А как вообще в run-time узнать compile-time тип переменной?

1) instanceof

2) getClass().getName
Хм, возможно это и есть ответ на вопрос.
Тогда вопрос по-настоящему дурацкий.
...
Рейтинг: 0 / 0
хелп Type cast
    #34122352
02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
02
Гость
Не понял
Если
Number n = new Integer(1);,
то что же, по-вашему,
n.getClass().getName()=="java.lang.Number"????
...
Рейтинг: 0 / 0
хелп Type cast
    #34122474
Йогурт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я тут блин телепатию вовсю практикую, а он еще и ржет! =)
я хотел сказать, что, думаю, ответом на ваш вопрос будет что-то такое:

Код: plaintext
1.
2.
3.
4.
5.
6.
	 public   void  testDumb()  throws  Exception
	{
		Number m =  new  Integer( 1 );
		assertTrue(m  instanceof  Number);
		assertEquals("java.lang.Integer", m.getClass().getName());
	}
...
Рейтинг: 0 / 0
хелп Type cast
    #34122475
Йогурт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>А как вообще в run-time узнать compile-time тип переменной?

это как вообще?
...
Рейтинг: 0 / 0
хелп Type cast
    #34122505
02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
02
Гость
2 йогурт
Ну бывает же такое, что человек тупит
Я, надеюсь временно, туплю. Обьясните, pls, имеется ввиду, что, если testDumb() не выбросит Exception, то можно сказать, что m была объявлена с типом Number, а не, к примеру, с типом Comparable
Тока не сердитесь, может я все-таки пойму
...
Рейтинг: 0 / 0
хелп Type cast
    #34122733
Фотография МТД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
022 йогурт
Ну бывает же такое, что человек тупит
Я, надеюсь временно, туплю. Обьясните, pls, имеется ввиду, что, если testDumb() не выбросит Exception, то можно сказать, что m была объявлена с типом Number, а не, к примеру, с типом Comparable
Тока не сердитесь, может я все-таки пойму
Comparable - это не тип.
...
Рейтинг: 0 / 0
хелп Type cast
    #34122753
02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
02
Гость
Comparable даже скорее ТИП, чем, например, Object
Ken Arnold
The fundamental unit of programming in the Java programming language is the class,
but the fundamental unit of object-oriented design is the type.
While classes define types, it is very useful and powerful to be able to define a type without defining a class.
Interfaces define types in an abstract form as a collection of methods or other types that form the contract for that type.
...
Рейтинг: 0 / 0
хелп Type cast
    #34123058
Фотография МТД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
02Comparable даже скорее ТИП, чем, например, Object
Ken Arnold
The fundamental unit of programming in the Java programming language is the class,
but the fundamental unit of object-oriented design is the type.
While classes define types, it is very useful and powerful to be able to define a type without defining a class.
Interfaces define types in an abstract form as a collection of methods or other types that form the contract for that type.

Comparable - это интерфейс.
Это не тип.
...
Рейтинг: 0 / 0
хелп Type cast
    #34123234
02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
02
Гость
А для кого же в JLS тогда написано
JLS
4.3 Reference Types and Values
There are three kinds of reference types: class types (§8), interface types (§9), and array types (§10).

Только для меня?
...
Рейтинг: 0 / 0
хелп Type cast
    #34123258
Фотография МТД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
02А для кого же в JLS тогда написано
JLS
4.3 Reference Types and Values
There are three kinds of reference types: class types (§8), interface types (§9), and array types (§10).

Только для меня?
Это reference types - ссылочные типы. Если их называть просто типами - никто не поймет, о чем идет речь.

Найдите более подходящую цитату, пожалуйста.
...
Рейтинг: 0 / 0
хелп Type cast
    #34123264
Фотография МТД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
02
Хотя если рассматривать в аспекте "тип переменной" - может и сойдет.
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / хелп Type cast
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]