任何简单的Java方法将hashmap的一部分传递给另一个hashmap?

Arv*_*nem 1 java hashmap wrapper

对于我的交易程序,Merchant对象具有使用布尔值枚举的Qualities的HashMap质量.

public class Merchants {
   private Map<Qualities, Boolean> qualities = new HashMap<Qualities, Boolean>();
Run Code Online (Sandbox Code Playgroud)

我想给每个Merchant对象一个真实质量的进一步ratingQualities HashMap,用Byte或Integer值表示这些质量的等级.

例如,给定的商家可能具有与其真实股票经纪质量相关联的"1"评级.

问题是Java不允许我轻易做到这一点.以下代码演示了我的意图,但没有编译:

private Map<qualities-TRUE, Byte> ratedQualities = new HashMap<qualities-TRUE, Byte>();
Run Code Online (Sandbox Code Playgroud)

根据这个链接文本,一个解决方案是为HashMap的质量创建一个包装器.这是唯一的解决方案还是有更好的方法?

在此先感谢您的帮助.

Mat*_*ler 6

以下是使用ThomasLötzer和其他人提出的想法实现Merchant的实现.

class Merchant
{
    Map<Quality, Integer> ratings = new HashMap<Quality, Integer>();

    boolean hasQuality(Quality quality)
    {
        return ratings.containsKey(quality);
    }

    int getRatingOfQuality(Quality quality)
    {
        Integer rating = ratings.get(quality);
        return (rating != null) ? rating : 0;
    }

    void setRatingOfQuality(Quality quality, int rating)
    {
        ratings.put(quality, rating);
    }
}
Run Code Online (Sandbox Code Playgroud)