Есть ли способ получить хэш-код InputStream с помощью Guava?

Интерфейсы требуют, чтобы подпись метода соответствовала сигнатуре контракта точно .

Вот более простой пример, который также не будет компилироваться:

interface IFoo
{
    Object GetFoo();
}

class Foo : IFoo
{
    public String GetFoo() { return ""; }
}

Теперь о том, что с этим делать, я бы позволил интерфейсу диктовать реализацию. Если вы хотите, чтобы контракт был IEnumerable<T>, то это то, что должно быть в классе. Интерфейс является самым важным здесь, так как реализация свободна настолько гибкой, насколько это необходимо.

Просто убедитесь, что IEnumerable<T> - лучший выбор здесь. (Это очень субъективно, поскольку я мало знаю о вашем домене или цели этих типов в вашем приложении. Удачи!) [/ ​​G4]

2
задан bhspencer 18 January 2019 в 16:09
поделиться

1 ответ

То, что вы хотите сделать, это ByteStreams.copy(input, Funnels.asOutputStream(hasher)), где hasher получается, например, из. Hashing.sha256().newHasher(). Затем позвоните hasher.hash(), чтобы получить результат HashCode.

0
ответ дан Louis Wasserman 18 January 2019 в 16:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: