【问题标题】:Static method with parameter that must implement Serializable带有必须实现 Serializable 参数的静态方法
【发布时间】:2016-01-19 05:24:50
【问题描述】:

我用这样的静态方法创建了一个Encryption 类...

public static SealedObject encrypt(Object toEncrypt)

我想静态使用encrypt 方法作为辅助函数。问题是当创建SealedObject 以返回时(在使用密码加密提供的Object 之后)SealedObject 需要提供的Object 来实现SerializableObject 本身没有实现哪个。

由于encrypt 方法采用Object,它没有实现Serializable,所以我无法创建SealedObject 以从提供的Object 返回。

如何使用泛型来确保传递的参数实现Serializable,但仍保持方法的静态性质?

该方法将用于许多不同的类型

【问题讨论】:

  • 为什么不指定public static SealedObject encrypt(Serializable toEncrypt)
  • 我认为这可能会有所帮助。 stackoverflow.com/q/16852247/2193236
  • @JamesKPolk 哇,我从来没想过。 OO 语言很棒,谢谢!

标签: java generics encryption serialization


【解决方案1】:

很简单。只需在方法上使用类型边界。

public <T extends Serializable> SealedObject encrypt(T object) throws IOException, IllegalBlockSizeException {
    return new SealedObject(object, null);
}

【讨论】:

    猜你喜欢
    • 2019-06-30
    • 1970-01-01
    • 1970-01-01
    • 2011-10-26
    • 1970-01-01
    • 1970-01-01
    • 2013-10-19
    • 2018-11-01
    • 2012-03-05
    相关资源
    最近更新 更多