本文整理汇总了Java中com.ibm.wala.classLoader.IClass.isArrayClass方法的典型用法代码示例。如果您正苦于以下问题:Java IClass.isArrayClass方法的具体用法?Java IClass.isArrayClass怎么用?Java IClass.isArrayClass使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.ibm.wala.classLoader.IClass
的用法示例。
在下文中一共展示了IClass.isArrayClass方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: main
import com.ibm.wala.classLoader.IClass; //导入方法依赖的package包/类
/**
* This main program shows one example use of thread escape analysis: producing a set of fields to be monitored for a
* dynamic race detector. The idea is that any field might have a race with two exceptions: final fields do not have
* races since there are no writes to them, and volatile fields have atomic read and write semantics provided by the
* VM. Hence, this piece of code produces a list of all other fields.
* @throws CancelException
* @throws IllegalArgumentException
*/
public static void main(String[] args) throws IOException, ClassHierarchyException, IllegalArgumentException, CancelException {
String mainClassName = args[0];
Set<JarFile> jars = HashSetFactory.make();
for (int i = 1; i < args.length; i++) {
jars.add(new JarFile(args[i]));
}
Set<IClass> escapingTypes = (new SimpleThreadEscapeAnalysis(jars, mainClassName)).gatherThreadEscapingClasses();
for (Iterator<IClass> types = escapingTypes.iterator(); types.hasNext();) {
IClass cls = types.next();
if (!cls.isArrayClass()) {
for (Iterator<IField> fs = cls.getAllFields().iterator(); fs.hasNext();) {
IField f = fs.next();
if (!f.isVolatile() && !f.isFinal()) {
System.err.println(f.getReference());
}
}
}
}
}
示例2: collectAllInterfaces
import com.ibm.wala.classLoader.IClass; //导入方法依赖的package包/类
/**
* Collects all implemented interfaces for a given class
* @param clazz the IClass object to analyze
* @return a set of IClass objects representing the interfaces
*/
public static Set<IClass> collectAllInterfaces(IClass clazz) {
// do not check array classes
if (clazz.isArrayClass()) return new HashSet<IClass>();
Set<IClass> interfaces = new HashSet<IClass>(clazz.getDirectInterfaces());
for (IClass c : clazz.getDirectInterfaces())
interfaces.addAll(collectAllInterfaces(c));
return interfaces;
}