java异构_Java:当项不相关时有界异构集合

博客讨论了如何在Java中处理异类集合的问题,特别是在已知集合中元素类型的场景下。作者提出了一种映射结构,其值可以是三种特定类型之一:ClassA、ClassB或String。文章探讨了通过实现公共接口、使用泛型以及重新考虑设计来避免随机添加不期望类型的限制。作者寻求最佳实践来限制集合中可添加的类型。
摘要由CSDN通过智能技术生成

如果我有一个异类集合,我完全知道我要放置的类型,有没有办法强制执行这个。

举个例子,假设我有一个映射,它有一个字符串键和一个值,可以是三个不相关的类型。现在我知道我只会把ClassA和ClassB或者java.lang.String

例如下面是代码

public HetroCollection

{

public Map values;

}

public ClassA

{

}

public ClassB

{

}

public static void Main(String args[])

{

HetroCollection collection = new HetroCollection();

collection.values.add("first", new ClassA());

collections.values.add("second", new ClassB());

collections.values.add("third" , "someString");

//BAD want to stop random adds

collections.values.("fourth" , new SomeRandomClass());

}

我想到的选择是:

让类实现一个公共接口并在映射上使用泛型(问题是如果这也涉及到JDK或第三方的库类,那么改变类不是一个选项

隐藏地图并提供类似于

put(字符串键,ClassA值);

put(字符串键,ClassB值);

put(字符串键,字符串值);

get(字符串键);

重新考虑设计,不要使用异类集合(不确定如何用其他方式表示)

寻找最佳实践答案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值