如何在java中将Set转换为Set <serializable>?

时间:2016-09-23 08:56:36

标签: java serialization set

我有一个我需要在另一个方法中使用的Set,但是这个方法将Set<Serializable>作为输入。 这是最好的方法吗?任何可以接受的建议。

2 个答案:

答案 0 :(得分:3)

制作套装的副本:

Set<Serializable> serializableSet = new HashSet<Serializable>(yourSet);

(如果您需要保留订单,请使用LinkedHashSet。)

这假设yourSet的元素当然是实现Serializable

答案 1 :(得分:1)

有两个警告。但它确实有效。

void anotherMethod(Set<Serializable> arg) {
    System.out.println("called");
}

public void myMethod() {
    Set set = new HashSet<>(); // Set is a raw type.
                               // References to generic type Set<E>
                               // should be parameterized
    anotherMethod(set); // Type safety:
                        // The expression of type Set needs unchecked
                        // conversion to conform to Set<Serializable>
}

如果setSet<Object>,那么您可以致电anotherMethod((Set)set)