首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JAVA BCEL新getType基本类型

JAVA BCEL新getType基本类型
EN

Stack Overflow用户
提问于 2011-08-16 12:25:22
回答 1查看 263关注 0票数 1

如何在BCEL中检查此..

假设java中的字节码是

代码语言:javascript
复制
newarray 10 (int)

我已经为访客准备好了

代码语言:javascript
复制
instruction instanceof NEWARRAY

public boolean visit(Instruction instr) {
    return instr instanceof NEWARRAY;
}

但我也要检查newarray是不是int[]

如何在BCEL中检查?

我试过了

代码语言:javascript
复制
 && ((NEWARRAY) instr).getType() == Type.INT;

转到井

代码语言:javascript
复制
return instr instanceof NEWARRAY && ((NEWARRAY) instr).getType() == Type.INT;

但是你可以看到上面的^不会工作,因为它永远不会是int..但是int[]

但是Type.INT只是int..而不是int[]..

如何表示类型int[]

我正在阅读BCEL源代码,NEWARRAY.getType()返回以下内容。

代码语言:javascript
复制
     /**
      * @return type of constructed array
      */
     public final Type getType() {
         return new ArrayType(BasicType.getType(type), 1);
     }

正如您所看到的,它返回一个Type类,因此..看着http://commons.apache.org/bcel/apidocs/org/apache/bcel/generic/Type.html

http://commons.apache.org/bcel/apidocs/org/apache/bcel/generic/ArrayType.html

没有任何用于数组int[]Type

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-16 12:52:04

我想我不能很好地理解你的问题,但是这个怎么样:

代码语言:javascript
复制
if(instr.getClass().isArray()) return instr instanceof NEWARRAY[];
else return instr instanceof NEWARRAY;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7073622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档