Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / хелп Type cast / 25 сообщений из 26, страница 1 из 2
10.11.2006, 18:50:25
    #34120529
Juga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хелп Type cast
Поскажите как сделать type cast имя только имя класса в виде строки. Ну или хотя бы стандартый конструктор.
...
Рейтинг: 0 / 0
10.11.2006, 19:06:12
    #34120581
Йогурт
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хелп Type cast
если имя класса в виде строки - то на этапе выполнения тип неизвестен, иначе зачем это надо
отсюда второй вопрос: что к чему кастить?
...
Рейтинг: 0 / 0
12.11.2006, 09:22:16
    #34121676
Juga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хелп Type cast
есть например
String class = "java.lang.Integer";
String dig = "1";
нужно получить int i = (class)dig;
Хелп!!! как это сделать???
...
Рейтинг: 0 / 0
12.11.2006, 10:33:22
    #34121700
kdanylo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хелп Type cast
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
12.11.2006, 10:39:09
    #34121702
Juga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хелп Type cast
Ну это тоже вариант. Хотя мне он не очень потходит, я не знаю заранее какие типы у меня будут. Вроде как то можно через Class но не могу пока понять как.
...
Рейтинг: 0 / 0
12.11.2006, 13:26:55
    #34121855
МТД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хелп Type cast
JugaНу это тоже вариант. Хотя мне он не очень потходит, я не знаю заранее какие типы у меня будут. Вроде как то можно через Class но не могу пока понять как.
Используй reflections.

Показывать пример или сам сумеешь понять?
...
Рейтинг: 0 / 0
12.11.2006, 13:43:45
    #34121871
Juga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хелп Type cast
покажи если не сложно
...
Рейтинг: 0 / 0
12.11.2006, 13:48:42
    #34121874
МТД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хелп Type cast
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
12.11.2006, 13:49:15
    #34121875
МТД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хелп Type cast
Хм, package-declaration можно выкинуть :)
...
Рейтинг: 0 / 0
12.11.2006, 14:12:23
    #34121910
Juga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хелп Type cast
Смысл ясен. Спасибо огромное!!!
...
Рейтинг: 0 / 0
12.11.2006, 14:17:42
    #34121919
МТД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хелп Type cast
JugaСмысл ясен. Спасибо огромное!!!
Прихадите исчо.
...
Рейтинг: 0 / 0
12.11.2006, 17:55:50
    #34122100
02
02
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хелп Type cast
В связи с выше сказанным может глупый, но вопрос
А как вообще в run-time узнать compile-time тип переменной?
...
Рейтинг: 0 / 0
12.11.2006, 17:59:13
    #34122104
МТД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хелп Type cast
02
А как вообще в run-time узнать compile-time тип переменной?
Если это объект, то никак.
И нафик это не нужно.
...
Рейтинг: 0 / 0
12.11.2006, 19:57:08
    #34122245
Йогурт
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хелп Type cast
02В связи с выше сказанным может глупый, но вопрос
А как вообще в run-time узнать compile-time тип переменной?

1) instanceof

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

1) instanceof

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

Код: 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
13.11.2006, 01:01:05
    #34122475
Йогурт
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хелп Type cast
>>А как вообще в run-time узнать compile-time тип переменной?

это как вообще?
...
Рейтинг: 0 / 0
13.11.2006, 03:13:48
    #34122505
02
02
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хелп Type cast
2 йогурт
Ну бывает же такое, что человек тупит
Я, надеюсь временно, туплю. Обьясните, pls, имеется ввиду, что, если testDumb() не выбросит Exception, то можно сказать, что m была объявлена с типом Number, а не, к примеру, с типом Comparable
Тока не сердитесь, может я все-таки пойму
...
Рейтинг: 0 / 0
13.11.2006, 09:04:16
    #34122733
МТД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хелп Type cast
022 йогурт
Ну бывает же такое, что человек тупит
Я, надеюсь временно, туплю. Обьясните, pls, имеется ввиду, что, если testDumb() не выбросит Exception, то можно сказать, что m была объявлена с типом Number, а не, к примеру, с типом Comparable
Тока не сердитесь, может я все-таки пойму
Comparable - это не тип.
...
Рейтинг: 0 / 0
13.11.2006, 09:12:14
    #34122753
02
02
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хелп Type cast
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
13.11.2006, 10:54:38
    #34123058
МТД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хелп Type cast
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
13.11.2006, 11:32:51
    #34123234
02
02
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хелп Type cast
А для кого же в 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
13.11.2006, 11:38:14
    #34123258
МТД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хелп Type cast
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
13.11.2006, 11:39:18
    #34123264
МТД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хелп Type cast
02
Хотя если рассматривать в аспекте "тип переменной" - может и сойдет.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / хелп Type cast / 25 сообщений из 26, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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