草庐IT

java - 静态函数中@Value注解的替代方法

不可能在静态变量上使用@Value。@Value("${some.value}")staticprivateintsomeValue;staticpublicvoiduseValue(){System.out.println(someValue);}当我这样做时,0被打印出来。那么有什么好的替代方法呢? 最佳答案 Spring在静态字段中注入(inject)注释(默认情况下)。所以你有两个选择:(更好的)使字段非静态(丑陋的hack)添加一个写入静态字段的非静态setter,并将@Value注释添加到setter。然后是trickw

java - 接口(interface)的成员变量必须是最终的......为什么?

我脑子里有一个问题,为什么不能是接口(interface)中的成员变量是非常量。静态的逻辑在我脑海中是正确的,如果一个人需要访问接口(interface)的变量,那么它是它必须是静态的,因为我们不能创建接口(interface)的实例,但为什么需要final?下面的代码显示了接口(interface)成员变量是如何成为静态最终变量的,即使我们默认没有提到它......interfaceinter{inta=10;//ItbecomesfinalstaticbydefaultpublicvoidinterFunc();}classclsimplementsinter{publicvoid

java - Java 静态类背后的概念

考虑以下代码classA{staticclassB{inta=0;}publicstaticvoidmain(Stringargc[]){Bvar1=newB();Bvar2=newB();var1.a=5;var2.a=6;System.out.println(var1.a+"and"+var2.a);}}它输出5和6。静态成员只加载一次。但是输出与该声明相矛盾。所以静态类的概念肯定不同于静态数据成员。那么静态在静态类的情况下意味着什么 最佳答案 来自oracle的复制粘贴:静态嵌套类与类方法和变量一样,静态嵌套类与其外部类相关联

java - 用于查找静态(非最终)变量的正则表达式

我正在尝试在我的Eclipse(Java)工作区中进行搜索,以查找所有非最终静态变量的实例。我尝试了各种正则表达式,但它们没有产生任何匹配项。有人可以建议一个正则表达式来匹配所有包含static且不包含final且不以{结尾的行吗?关于不以{结尾的最后一部分将消除静态方法。一个例子:publicclassFlagOffendingStatics{privatestaticStringshouldBeFlagged="notok";privatestaticfinalStringok="thisisfine";publicstaticvoidmethodsAreOK(){}}

关于静态的Java问题

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭11年前。我今天在我们的代码中遇到了这个错误,花了一段时间才弄清楚。我发现它很有趣,所以我决定分享它。这是问题的简化版本:publicclassTest{static{text="Hello";}publicstaticStringgetTest(){returntext+"World";}privatestaticStringtext=null;}猜猜Test.getTest();返回什么以及为什么?

java - 为什么引用静态变量时要包含类名?

在做一些Java作业时,我通过编写实例方法回答了一个问题,在该方法中我使用了一些属于该方法所在类的staticfinal变量。我写了static变量名不以类名作为前缀,例如:for(inti=0;i代替for(inti=0;i这编译并正常工作。直到后来我才注意到我忘了给类(class)的名字加上前缀。我是否包含类名有关系吗?staticfinal变量在其类的上下文中是否像全局变量一样? 最佳答案 DoesitmatterwhetherIincludetheclassnameornot?也许是给你的老师,以及future在你最终工作的

java - 在 Java 中声明 "static"变量时 "global"到底是什么意思?

我已经多次遇到这个问题,但我从来没有费心去了解它为什么会发生,也没有去了解“静态”的真正含义。我只是应用了Eclipse建议的更改并继续。publicclassMember{//GlobalVariablesintiNumVertices;intiNumEdges;publicstaticvoidmain(String[]args){//dostuffiNumVertices=0;//Cannotmakeastaticreferencetothenon-staticfieldiNumVertices//domorestuff}//mainend}所以eclipse告诉我做statici

java - 单例的好案例?

我有一个应用程序,它有几个类用于存储应用程序范围的设置(资源位置、用户设置等)。现在这些类只是充满了静态字段和方法,但我从未实例化它们。有人建议我让他们成为单例,支持/反对的情况是什么? 最佳答案 我认为单例模式是应用最不恰当的设计模式。在大约12年的软件开发过程中,我会说我可能见过5个合适的示例。我在一个项目中工作,我们有一个系统监控服务,该服务使用System类(不要与Java的内置System类混淆)为我们的系统建模其中包含一个Subsystem列表,每个子系统都有一个Component列表,依此类推。设计者将System设为

java - 什么是 "non-static method"错误以及 "this"是如何工作的?

我有几个非常基本的Java问题,我想一劳永逸地最终理解。我有以下一小段代码:publicclassVeryBasicJava{publicstaticvoidmain(String[]args){intx=3;inty=4;swapMe(x,y);}privatevoidswapMe(inta,intb){inta;intb;inttmp=a;this.a=b;this.b=a;}}当我编译时,我得到了可怕的“无法从静态上下文中引用非静态方法swapMe(int,int)”错误。此外,我得到“a已在swapMe(int,int)中定义”和“b已在swapMe(int,int)中定义”我

Java - 是否有任何理由两次检查单例是否为空?

我遇到过一些代码,其中开发人员不断使用嵌套if检查单例是否为null两次-如下面的代码所示:privatestaticprocessManagersingleton=null;...publicsynchronizedstaticprocessManagergetInsatnce()throwsException{if(singleton==null){if(singleton==null){singleton=newprocessManager();}}returnsingleton}我看不出有什么原因会这样,但是代码中有很多实例,所以我认为可能有原因吗?