访问类中的字段

时间:2016-10-21 07:13:39

标签: java android

我的项目由一些类组成:类型1和类型2和...是每个都有自己的函数和字段我将按如下方式使用它们:

  public interface iType {
    public void initialize();
  }

  public class Type1 implements iType {
    public static final String GROUP = "F1";
    public String[][] arrayName = new String[][]{
      {"a1", "d1"},
      {"b1", "f1"},
      {"c1", "g1"},
    };
    public HashMap<String, Unit> mapName = new HashMap<String, Unit>();

    @Override
    public void initialize() {
      //initialize Hashmap
    }
  }

  public class Type2 implements iType {
    public static final String GROUP = "F2";
    public String[][] arrayName = new String[][]{
      {"a2", "d2"},
      {"b2", "f2"},
      {"c2", "g2"},
    };
    public HashMap<String, Unit> mapName = new HashMap<String, Unit>();

    @Override
    public void initialize() {
      //initialize Hashmap
    }
  }

  //other classes : Type3 ,Type4 ,...

  private iType modify(String type) {
    switch (type) {
      case "Type1":
        return new Type1();
      case "Type2":
        return new Type2();
      /*
      case "Type3":
        .
        .
        .
      */
    }
    return null;
  }

  public void main() {
    iType x = modify(getType());
    ((Type1) x).
  }

在这种情况下,不能用于投射:((Type?)x).arrayName

我不想强制转换因为我不知道变量x中的哪个类,所以如何转换变量x? x的值取决于getType()

如何通过x?

访问字段类

1 个答案:

答案 0 :(得分:1)

  

如何通过x?

访问字段类

您可以向iType添加新方法,

 public String[][] getNames();

Type1Type2都将被强制实施。让这个方法返回你的数组。这样你就可以避免演员了