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我有解除引用错误,当我使用该类时,我有这些错误。
答案 0 :(得分:0)
我认为您正在寻找的是instanceof,格式如下:
Boolean isChar = item instanceof Character;
以下是有关使用情况的一些文档:http://www.java2s.com/Tutorial/Java/0060__Operators/TheinstanceofKeyword.htm
我对你究竟想要做什么感到困惑 - 虽然instanceof履行了你想要的功能.class,我无法看到它如何帮助你你的代码的上下文。