本文将带您了解关于如何隐藏字段或局部变量的FindBugs警告的新内容,同时我们还将为您解释隐藏字段按钮的相关知识,另外,我们还将为您提供关于ajax中success函数无法改变全局或局部变量的值、C
本文将带您了解关于如何隐藏字段或局部变量的FindBugs警告的新内容,同时我们还将为您解释隐藏字段按钮的相关知识,另外,我们还将为您提供关于ajax中success函数无法改变全局或局部变量的值、C#------字段与局部变量的操作、C#:(变量)字段和局部变量的作用域冲突、FindBugs 3.0.0 发布,Java 代码 Bug 分析插件的实用信息。
本文目录一览:- 如何隐藏字段或局部变量的FindBugs警告(隐藏字段按钮)
- ajax中success函数无法改变全局或局部变量的值
- C#------字段与局部变量的操作
- C#:(变量)字段和局部变量的作用域冲突
- FindBugs 3.0.0 发布,Java 代码 Bug 分析插件
如何隐藏字段或局部变量的FindBugs警告(隐藏字段按钮)
我想抑制针对特定字段或局部变量的FindBugs警告。FindBugs文档证明目标可以是其edu.umd.cs.findbugs.annotations.SuppressWarning注释[1]的类型,字段,方法,参数,构造函数,程序包。但是,仅当我注释警告时,才对字段进行注释对我不起作用。
注释整个方法对我来说似乎很广泛。有什么方法可以抑制特定字段上的警告?还有另一个相关问题[2],但没有答案。
[1]
http://findbugs.sourceforge.net/manual/annotations.html
[2]
在Eclipse中禁止FindBugs警告
演示代码:
public class SyncOnBoxed{ static int counter = 0; // The following SuppressWarnings does NOT prevent the FindBugs warning @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="DL_SYNCHRONIZATION_ON_BOXED_PRIMITIVE") final static Long expiringLock = new Long(System.currentTimeMillis() + 10); public static void main(String[] args) { while (increment(expiringLock)) { System.out.println(counter); } } // The following SuppressWarnings prevents the FindBugs warning @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="DL_SYNCHRONIZATION_ON_BOXED_PRIMITIVE") protected static boolean increment(Long expiringLock) { synchronized (expiringLock) { // <<< FindBugs warning is here: Synchronization on Long in SyncOnBoxed.increment() counter++; } return expiringLock > System.currentTimeMillis(); // return false when lock is expired }}
答案1
小编典典@SuppressFBWarnings
在字段上仅显示禁止为该字段声明报告的findbugs警告,而不是与该字段关联的每个警告。
例如,这消除了“仅将字段设置为null”警告:
@SuppressFBWarnings("UWF_NULL_FIELD")String s = null;
我认为您能做的最好的事情就是将带有警告的代码隔离到最小的方法中,然后在整个方法上取消警告。
注:@SuppressWarnings
被标记弃用赞成@SuppressFBWarnings
ajax中success函数无法改变全局或局部变量的值
在调用一个jquery的ajax方法时我们有时会需要该方法返回一个值或者给某个全局变量赋值,可是我们发现程序执行完后并没有获取到我们想要的值。代码如下:
function modifyMissionSchedule(x,obj) {
var PHONE = getPhone();
var stream = {
"MISSIONID":obj.parent().next("li").attr("id"),
"PHONE":PHONE,
"SCHEDULE":x, //修改后的进度
};
var EncryptData=dataProces(stream);
var check=true;
$.ajax({
url: apiUrl+"modifyMissionSchedule.do?TAG=" + TAG,
type: "POST",
data: EncryptData,
dataType: "json",
cache: false,
success: function(data) {
if(data.CODE=="1"){
getMissionLog();
check=true;
}
else if(data.CODE=="-1"){
check=false;
}
}
});
return check;
}
这样子,该函数的返回值就会无法改变,主要原因是ajax的异步机制。
只要加上一句async:false,问题即可解决。
function modifyMissionSchedule(x,obj) {
var PHONE = getPhone();
var stream = {
"MISSIONID":obj.parent().next("li").attr("id"),
"PHONE":PHONE,
"SCHEDULE":x, //修改后的进度
};
var EncryptData=dataProces(stream);
var check=true;
$.ajax({
url: apiUrl+"modifyMissionSchedule.do?TAG=" + TAG,
type: "POST",
data: EncryptData,
dataType: "json",
cache: false,
async:false,
success: function(data) {
if(data.CODE=="1"){
getMissionLog();
check=true;
}
else if(data.CODE=="-1"){
check=false;
}
}
});
return check;
}
C#------字段与局部变量的操作
首先说一下定义:
- 申明为类型级的变量为字段;
- 在方法中申明的变量为局部变量。
- 如果方法中局部变量与字段申明名称相同,那么在方法调用时首先使用的是局部变量而隐藏类型级变量,直至方法结束。
例子1:
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Threading.Tasks;
6
7 namespace ConsoleApplication1
8 {
9 class Program
10 {
11 static int i = 10;
12 static void Main(string[] args)
13 {
14 int i = 20;
15 Console.WriteLine("main i = {0}",i);
16
17 Console.ReadKey();
18 }
19 }
20 }
结果:main i = 20
例子2:
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Threading.Tasks;
6
7 namespace ConsoleApplication1
8 {
9 class Program
10 {
11 static int i = 10;
12 static void Main(string[] args)
13 {
14 int i = 20;
15 Console.WriteLine("main i = {0},static i={1}",i,Program.i);
16
17 Console.ReadKey();
18 }
19 }
20 }
结果:main i = 20,static i=10
由此结论,要调用相同名称的字段与局部变量时,对于字段可以使用object.filename语法实现。
C#:(变量)字段和局部变量的作用域冲突
C#把声明为类型级的变量看作字段,而把在方法中声明的变量看作局部变量。
using System;
namespace ConsoleApplication10
{
class Program
{
static int j = 20;
public static void Main(string[] args)
{
int j = 30;
Console.WriteLine("In the Main()" + j);
Console.WriteLine(Program.j);
Console.ReadLine();
return;
}
}
此时编译器允许声明第二个变量。
FindBugs 3.0.0 发布,Java 代码 Bug 分析插件
FindBugs 3.0.0 发布,此版本现已提供下载,更新内容如下:
FindBugs supports Java 8 now (both as runtime and target platform).
FindBugs requires minimum Java 7 as runtime environment!
FindBugs uses ASM 5 now which means that some 3rd party detectors based on FindBugs 2.x/ASM 3 has to be upgraded.
New "Source" filter which can be used to filter out classes generated from other languages:
<?xml version="1.0" encoding="UTF-8"?> <FindBugsFilter> <Match> <Source name="~.*\.groovy" /> </Match> </FindBugsFilter>
New "-auxclasspathFromFile" and "-analyzeFromFile" command line options.
New "nested" ant task attribute.
Various bug fixes, also many patches from community. Thanks for your contributions!
FindBugs是一个能静态分析源代码中可能会出现Bug的Eclipse插件工具。
关于如何隐藏字段或局部变量的FindBugs警告和隐藏字段按钮的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于ajax中success函数无法改变全局或局部变量的值、C#------字段与局部变量的操作、C#:(变量)字段和局部变量的作用域冲突、FindBugs 3.0.0 发布,Java 代码 Bug 分析插件等相关知识的信息别忘了在本站进行查找喔。
本文标签: