I've получил суперкласс Token
с некоторыми подклассами, как Knight
, King
, Queen
и т.д.Java: вызов статического метода из неизвестного класса с polymorphy
мне нужен случайный Token
типа, так что я называю этот метод:
public Class randomTokenType(){
Class[] classes ={ Bishop.class, King.class, Knight.class, Pawn.class, Queen.class, Rook.class };
Random random = new Random();
return classes[random.nextInt(6)];
}
Class<Token> tokenType = randomTokenType();
теперь я хочу, чтобы вызвать статический метод на этом tokenType, для примера:
tokenType.displayString()
Компилятор не может решить этот метод, даже жестко его реализовать в Token
и всех его подклассах.
В чем моя ошибка?
Как вы думаете, класс 'Class' это? Почему ты так думаешь? Полиморфизм и «статические» противоречивы в Java. –
Кроме того, не добавляйте фрагмент кода javascript для кода Java.Посмотрите в справочном центре, как правильно отредактировать фрагменты кода. –
Im новый на Java извините. Обычно я код в Smalltalk, где даже классы являются объектами. Нет никакой разницы в поведении между «классами» и «объектами». – jesper