⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 idivresultcasttodouble.java

📁 A static analysis tool to find bugs in Java programs
💻 JAVA
字号:
package edu.umd.cs.findbugs.detect;import edu.umd.cs.findbugs.*;import org.apache.bcel.classfile.Method;public class IDivResultCastToDouble extends BytecodeScanningDetector {	private static final boolean DEBUG = SystemProperties.getBoolean("idcd.debug");	private BugReporter bugReporter;	private int prevOpCode;	public IDivResultCastToDouble(BugReporter bugReporter) {		this.bugReporter = bugReporter;	}	@Override		 public void visit(Method obj) {		if (DEBUG) System.out.println("Visiting " + obj);	}	BugInstance pendingBug = null;	@Override		 public void sawOpcode(int seen) {		if (DEBUG) System.out.println("Saw opcode " + OPCODE_NAMES[seen] + " " + pendingBug);		if ((prevOpCode  == I2D || prevOpCode == L2D)						&& seen == INVOKESTATIC								&& getClassConstantOperand().equals("java/lang/Math")								&& getNameConstantOperand().equals("ceil")) {			bugReporter.reportBug(new BugInstance(this, 				"ICAST_INT_CAST_TO_DOUBLE_PASSED_TO_CEIL", 				HIGH_PRIORITY)					.addClassAndMethod(this)					.addSourceLine(this));			pendingBug = null;		}		else if ((prevOpCode  == I2F || prevOpCode == L2F)				&& seen == INVOKESTATIC						&& getClassConstantOperand().equals("java/lang/Math")						&& getNameConstantOperand().equals("round")) {			bugReporter.reportBug(new BugInstance(this, 					"ICAST_INT_CAST_TO_FLOAT_PASSED_TO_ROUND", 					HIGH_PRIORITY)			.addClassAndMethod(this)			.addSourceLine(this));			pendingBug = null;		}		else if (pendingBug != null) {			bugReporter.reportBug(pendingBug);			pendingBug = null;		}		if (prevOpCode  == IDIV && (seen == I2D|| seen == I2F)			|| prevOpCode  == LDIV && (seen == L2D || seen==L2F))			pendingBug = new BugInstance(this, "ICAST_IDIV_CAST_TO_DOUBLE", NORMAL_PRIORITY)					.addClassAndMethod(this)					.addSourceLine(this);		prevOpCode = seen;		}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -