2015-03-25 3 views
2
class Drive <String, Integer> { 

} 

В чем смысл этого класса с общим возвращаемым типом как строка и целое число?В чем смысл этого класса?

Можем ли мы сделать класс как определение такого класса?

+2

Это очень плохой дизайн. Это означает, что 'String' и' Integer' в области этого класса будут рассматриваться как неизвестный общий тип (что не позволит нам использовать, например, 'String.format', поскольку компилятор не сможет предположить, что' String' 'java.lang.String'). Было бы лучше объявить этот класс как 'class Drive {...}' – Pshemo

ответ

6

Это класс с двумя общими типами - обратите внимание, что String и Integer в данном случае не имеют обычный смысл, они являются имена родовых типов, скрывающие java.lang.String.

Например, это не будет компилироваться, потому что String в вашем классе не обычная строка:

static class Drive <String, Integer> { 
    private void m() { 
    String s = ""; //incompatible types 
    } 
} 

Нижняя линия, ваша жизнь была бы проще, если вы застряли на съезде с использованием одиночных букв, для пример:

class Drive <T, U> { ... } 
+0

Что все типы методов могут включать в этот класс? – klampo

+0

@klampo Извините, я не уверен, что понимаю ... – assylias

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