2016-01-18 3 views
0

Я сделал Encryption класс со статическим методом, как так ...статический метод с параметром, который должен реализовать Сериализуемый

public static SealedObject encrypt(Object toEncrypt) 

Я хотел бы использовать метод encrypt статически в качестве вспомогательной функции. Проблема заключается в том, что при создании SealedObject для возврата (после шифрования прилагаемого Object с шифрованием) SealedObject требует, чтобы поставляемый Object реализовал Serializable. Какой Object сам не реализует.

Поскольку метод encrypt принимает Object, он не реализует Serializable поэтому я не могу создать SealedObject вернуться из комплекта поставки Object.

Как я могу использовать generics для обеспечения переданного параметра реализует Serializable, но сохраняя при этом статический характер метода?

Метод будет использоваться для разных типов

+6

Почему бы вам не указать 'public static SealedObject encrypt (Serializable toEncrypt)'? –

+0

Я думаю, что это может помочь. http://stackoverflow.com/q/16852247/2193236 – ctzdev

+0

@JamesKPolk Вау я никогда не думал об этом. OO языки отличные, спасибо! –

ответ

1

Простой. Просто используйте ограничения типа для метода.

public <T extends Serializable> SealedObject encrypt(T object) throws IOException, IllegalBlockSizeException { 
    return new SealedObject(object, null); 
} 
Смежные вопросы