我怎么看他们是否属于同一类型

时间:2014-10-30 16:55:49

标签: java comparison dereference

private static void ParseInput(String str) 
    {
        char c ;
        Integing item1;
        boolean result;
        int n =str.length();
        Stack StItem = new Stack(n);
        Queue QItem = new Queue(n);
        for (int i=0; i<n; i++){
            c = str.charAt(i);
            if ((c == '(') || (c=='[') || (c=='{')){
                Integing item = new Integing(i,c);
                StItem.push(item); 
            }else if((c==')') || (c==']') || (c=='}')){
                item1 = StItem.pop();               
                result = item1.getChar().class ==(c.class); //where i do the check
                if (result ){                     
                    Pair pair1 = new Pair(item1.getNumber(),i);
                    QItem.put(pair1);
                }else{
                    System.out.println("Syntax error");
                    System.exit(-1);
                }
            }
        }           
    }



public class Integing
{
    private int num;
    private char par;

    public  Integing(int numb,char paren)
    {
        num = numb;
        par = paren;
    }

    public  char getChar(){
        return this.par;   //The method i use to get the exact type
    }

    public  int getNumber(){
        return this.num;
    }

}

    我想检查item1和c是否属于同一类型。实际上我使用了一个方法getChar()来实现     正是我要检查的内容。我在互联网上找到了方法getClass或class.When i     使用getClass我有解除引用错误,当我使用该类时,我有这些错误。

![1]:http://i.stack.imgur.com/1kQZg.png

1 个答案:

答案 0 :(得分:0)

我认为您正在寻找的是instanceof,格式如下:

Boolean isChar = item instanceof Character;

以下是有关使用情况的一些文档:http://www.java2s.com/Tutorial/Java/0060__Operators/TheinstanceofKeyword.htm

我对你究竟想要做什么感到困惑 - 虽然instanceof履行了你想要的功能.class,我无法看到它如何帮助你你的代码的上下文。