如何从字符串中获取类类型

时间:2018-06-14 22:49:21

标签: java oop

所以例如,我有一个字符串数组,在一个数组位置,我有从Coronel.getRep()得到的字符串,我想知道是否有任何方法要弄清楚它来自哪个类从,如果我可以从String中找出它是什么类,因为我有一个包含来自游戏Stratego的所有部分的包,我用getRep()函数中的字符串填充游戏板,但是我该怎么做知道哪个部分在某个位置的电路​​板上,因为只有字符串我无法访问该部分的等级或者无论如何都要这样做?

例如getRespectiveClass(“C”),它将返回Coronel类。

public class Coronel {

    private String nome;
    private int total_pieces;
    private int rank;
    private String rep;

    public Coronel() {
        this.nome = "Coronel";
        this.total_pieces = 2;
        this.rank = 8;
        this.rep = "C";
    }
    public String getRep() {
        return this.rep;
    }
    public int getTotalPieces() {
        return this.total_pieces;
    }


    public String toString() {
        String a = this.rank + " / " + this.nome + " / " + this.total_pieces;
        return a;

    }

}

1 个答案:

答案 0 :(得分:0)

这个问题的直接答案是否定的。 Coronel& String(rep)正在共享Aggregation关系,因此您实际上无法从其中一个属性中检索容器类信息。

满足您要求的最佳解决方案不是存储Rep的Array of Strings,而是使用Coronel的Array of Object。您可以覆盖toString()方法以返回Rep属性。所以你对阵列的重新定位并没有改变,而是内部的。当你有权访问Coronel对象时,你可以检索你想要的任何属性,如rank,nome等。