|
|
|
Как определить тип переменной, ссылающейся на определённый класс? Нужен именно тип !
|
|||
|---|---|---|---|
|
#18+
Код: java 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. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. хочу что-то увидеть типа: System.out.println(" Тип howDefinedMyType будет: " + howDefinedMyType.getType()); //.. будет: interface HowDefinedMyType Заранее спасибо за конструктивный ответ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2015, 03:01 |
|
||
|
Как определить тип переменной, ссылающейся на определённый класс? Нужен именно тип !
|
|||
|---|---|---|---|
|
#18+
vladimir-boy, 1) добавить геттеры 2) Код: java 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2015, 06:48 |
|
||
|
Как определить тип переменной, ссылающейся на определённый класс? Нужен именно тип !
|
|||
|---|---|---|---|
|
#18+
vladimir-boy Код: java 1. 2. 3. хочу что-то увидеть типа: System.out.println(" Тип howDefinedMyType будет: " + howDefinedMyType.getType()); //.. будет: interface HowDefinedMyType Тип переменной у вас известен в Compile-time, его ненадо определять и невозможно переопределить. Вы хотите не тип переменной, а тип обьекта, на который переменная ссылается. Тут могут быть варианты 1) как посоветовали выше - проверка instanceof и если да, то приведение к этому типу. if (x instanceof K){ K k = (K)x;....используем k вместо х....} этот подход является нерекомендуемым 2) использовать виртуальные вызовы. авторinterface IContainsY{ void setY(int v); } class Foo implements IContainsX{ void setY(int v){поведение 1} } class Foo2 implements IContainsX{ void setY(int v){поведение 2} } IContainsX howDefinedMyType; .... howDefinedMyType.setY(23) 3) Использовать рефлекшен или использовать groovy, у которого рефлекшен под капотом. В случае груви просто пишите howDefinedMyType.y = 23 и если там будет y, то оно его засетит. Через рефлекшен надо вытащить класс, из класса вытащить Field с этим именем, и потом сделать filed.setInt(howDefinedMyType, 23); этот метод считается более медленным но унифицированным в том плане, что вообще можно не париться за тип. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2015, 11:10 |
|
||
|
Как определить тип переменной, ссылающейся на определённый класс? Нужен именно тип !
|
|||
|---|---|---|---|
|
#18+
В общем для себя нашёл такое решение: я хитро изловчился в NetBeans и вычислил тип: набираю первые три буквы искомой переменной how(DefinedMyType) нажимаю Ctrl + Пробел и у меня в окошке подстановки вылетает howDefinedMyType HowDefinedMyType с иконкой интерфейса("бесконечность") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2015, 13:53 |
|
||
|
Как определить тип переменной, ссылающейся на определённый класс? Нужен именно тип !
|
|||
|---|---|---|---|
|
#18+
удаляй... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2015, 14:00 |
|
||
|
|

start [/forum/topic.php?fid=59&gotonew=1&tid=2124684]: |
0ms |
get settings: |
7ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
138ms |
get topic data: |
6ms |
get first new msg: |
4ms |
get forum data: |
1ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 250ms |
| total: | 445ms |

| 0 / 0 |
