-1

寻找在Java中实现定义多维数组的方法,每个索引都是不同的类型

像这样的东西...

下面的“价值”和“活动”是相关的。但缺乏这样的结构,它们是独立声明的。

final String[] values = new String[]{
        "Config",
        "Linking Twitter & Facebook",
        "Facebook Direct",
        "Twitter Direct",
        "Action Bar (Profiled)",
        "Sharing",
        "Comments",
        "Likes",
        "Views",
        "Entities",
        "User Profile (Profiled)",
        "Actions (User Activity)",
        "Subscriptions",
        "Location",
        "Init",
        "Tools"
    };

    final Class<?>[] activities = new Class<?>[]{
        AuthButtonsActivity.class,
        FacebookActivity.class,
        TwitterActivity.class,
        ActionBarActivity.class,
        ShareActivity.class,
        CommentActivity.class,
        LikeActivity.class,
        ViewActivity.class,
        EntityActivity.class,
        UserActivity.class,
        ActionActivity.class,
        SubscriptionActivity.class,
        LocationActivity.class,
        InitActivity.class,
        ToolsActivity.class
    };

它应该被声明为这样的......如果java有支持......

Array<String, Class>[][] valueClasses = 

 final Array<String, Class>[][] valueClasses = new Array<String, Class>[][]{
        {  "Config",  AuthButtonsActivity.class },
    };
4

2 回答 2

0

您可以使用Map接口的实现。你的初始化代码可以变成这样:

private static Map<String, Class<?>> assembleActivitiesMap() {
  Map<String, Class<?>> activities = new HashMap<String, Class<?>>();

  activities.put("Config", AuthButtonsActivity.class);
  activities.put("Facebook", FacebookActivity.class);
  ...
  return activities;

private final Map<String, Class<?>> activities = assembleActivitiesMap();
于 2013-10-07T04:03:49.703 回答
0

不确定我是否遵循您的目标,但请查看Google Guava中的集合。Multimap可能是您正在寻找的。

于 2013-10-07T04:11:07.607 回答