|
|
|
Вопрос о наследовании
|
|||
|---|---|---|---|
|
#18+
Добрый вечер уважаемые форумчане. Возник вопрос по наследованию. Имеется интерфейс и две имплементации этого интерфейса. Допустим классы A и B. При инициализации класса A и класса B, необходимо присвоить классу A класс B. Вопрос собственно в том, как это сделать? При попытке такое провернуть вполне ожидаемо, что java выкидывает Exeption java.lang.ClassCastException с описанием cannot be cast to Вот примерв кода: Код: java 1. 2. 3. 4. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. Заранее большое спасибо за внимание к проблеме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2014, 22:52 |
|
||
|
Вопрос о наследовании
|
|||
|---|---|---|---|
|
#18+
Работайте с типом интерфейса, а не типами конкретных реализаций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2014, 23:02 |
|
||
|
Вопрос о наследовании
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, Также пытался это сделать, но к содалению результат тот же, это обусловлено конкретной реализацией. Т.е Socket websoket = (Socket) new Websoket(); уже обусловлен конкретной реализацией и семантика реализации свойственна для Websoket, отсюда cWebsoket != websoket Суть в том, что я ранее не работал с такой архитектурой, потому реализация может и есть, просто я не знаю о ней. )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2014, 23:11 |
|
||
|
Вопрос о наследовании
|
|||
|---|---|---|---|
|
#18+
Ulcigor, авторИмеется интерфейс и две имплементации этого интерфейса. Код: java 1. 2. 3. 4. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. У вас ошибка уже здесь. Класс CWebsocket не реализует интерфейс Session, для реализации он должен реализовать методы интерфейса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2014, 23:23 |
|
||
|
Вопрос о наследовании
|
|||
|---|---|---|---|
|
#18+
Ulcigor, так же: Код: java 1. 2. 3. 4. All abstract, default, and static methods in an interface are implicitly public, so you can omit the public modifier. https://docs.oracle.com/javase/tutorial/java/IandI/interfaceDef.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2014, 23:27 |
|
||
|
Вопрос о наследовании
|
|||
|---|---|---|---|
|
#18+
mr_virtus, Да, ошибка действительно есть, спасибо, но если абстрагироваться от этого и попробовать реализовать "правильный" объект, результат будет тотже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2014, 23:30 |
|
||
|
Вопрос о наследовании
|
|||
|---|---|---|---|
|
#18+
Ulcigor, авторДа, ошибка действительно есть, спасибо, но если абстрагироваться от этого и попробовать реализовать "правильный" объект, результат будет тотже. а для чего это нужно? Нельзя объекты создавать с типом интерфейса Session? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2014, 23:47 |
|
||
|
Вопрос о наследовании
|
|||
|---|---|---|---|
|
#18+
mr_virtus, Суть в том, что я бы хотел расширить класс org.apache.tomcat.websocket.WsSession который является наследником javax.websocket.Session В реализацию Сервлета метод onOpen приходит реализованый класс org.apache.tomcat.websocket.WsSession семантика onOpen = public void onOpen(javax.websocket.Session session) throws Exception; Мне это нужно для того, чтобы добавить свойство объекта описывающее пользователя, в основном нужно для авторизации пользователей в websocket ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2014, 00:07 |
|
||
|
Вопрос о наследовании
|
|||
|---|---|---|---|
|
#18+
Ulcigor, не очень понял, что значит "свойство объекта, описывающего пользователя". через session то нельзя это сделать? сессия же для пользователя определяется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2014, 00:15 |
|
||
|
Вопрос о наследовании
|
|||
|---|---|---|---|
|
#18+
mr_virtus, Совершенно верно, только мне нужно добавить пользователя в сессию для того, чтобы сопрячь сессию с идентификатором пользователя на сайте. т.е имеется класс описывающий пользователя: public class User { private Integer id; private String fn; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getFn() { return fn; } public void setFn(String fn) { this.fn = fn; } public Session getSession() { return session; } public void setSession(Session session) { this.session = session; } } который необходимо довавить в org.apache.tomcat.websocket.WsSession. Я это пытаюсь реализовать наследованием, но пока терплю неудачу )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2014, 00:22 |
|
||
|
Вопрос о наследовании
|
|||
|---|---|---|---|
|
#18+
Ulcigor, я свое время связывал пользователя с сессией через setAttribute. Но я работал с HttpSession. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2014, 00:30 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38799521&tid=2126308]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
164ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 258ms |
| total: | 520ms |

| 0 / 0 |
