草庐IT

non-final

全部标签

java - 多次返回 : Which one sets the final return value?

鉴于此代码:Stringtest(){try{return"1";}finally{return"2";}}语言规范是否定义了调用test()的返回值?换句话说:在每个JVM中它总是相同的吗?在SunJVM中,返回值为2,但我想确定,这与VM无关。 最佳答案 是的,languagespec定义“2”是结果。如果VM的做法有所不同,则说明它不符合规范。大多数编译器都会提示它。例如Eclipse会声称返回block永远不会被执行,但这是错误的。编写这样的代码是非常糟糕的做法,永远不要这样做:)

java - 'public static final' 还是带有 setter/getter 的 'private static final'?

在Java中,变量应该保持私有(private)以实现更好的封装,但是静态常量呢?这个:publicstaticfinalintFOO=5;结果与此等价:privatestaticfinalintFOO=5;...publicstaticgetFoo(){returnFOO;}但哪种做法更好? 最佳答案 不直接在代码中使用常量的原因之一。假设FOO稍后可能会更改(但仍保持不变),例如publicstaticfinalintFOO=10;。只要没有人愚蠢到直接硬编码值,就不应该破坏任何东西吗?没有。Java编译器会将上面的Foo等常量

java - 在 Java 中修改 final 字段

让我们从一个简单的测试用例开始:importjava.lang.reflect.Field;publicclassTest{privatefinalintprimitiveInt=42;privatefinalIntegerwrappedInt=42;privatefinalStringstringValue="42";publicintgetPrimitiveInt(){returnthis.primitiveInt;}publicintgetWrappedInt(){returnthis.wrappedInt;}publicStringgetStringValue(){return

java - 如何处理 Findbugs "Non-transient non-serializable instance field in serializable class"?

考虑下面的类(class)。如果我对它运行Findbugs,它会在第5行但不在第7行给我一个错误(“可序列化类中的非transient非可序列化实例字段”)。1publicclassTestClassimplementsSerializable{23privatestaticfinallongserialVersionUID=1905162041950251407L;45privateSetmySet;//Findbugserror67privateHashSetmyOtherSet;89}这是正确的,因为java.util.Set从未在其层次结构中实现Serializable而jav

java - 不可变类型 : public final fields vs. getter

我需要一个小的容器类来存储一些应该是不可变的字符串。由于String本身是不可变的类型,所以我想到了类似的东西:publicfinalclassImmu{publicfinalStringfoo;publicfinalStringbar;publicImmu(finalStringfoo,finalStringbar){this.foo=foo;this.bar=bar;}}许多人似乎根本反对使用公共(public)字段,而是使用Getter。恕我直言,在这种情况下这只是样板,因为String本身是不可变的。我可能在这个问题上遗漏了其他想法? 最佳答案

java - 是内存泄漏吗?为什么 java.lang.ref.Finalizer 吃掉这么多内存

我在我的程序上运行了一个堆转储。当我在内存分析工具中打开时,发现org.logicalcobwebs.proxool.ProxyStatement的java.lang.ref.Finalizer占用了大量内存.为什么会这样? 最佳答案 一些类实现了Object.finalize()方法。覆盖此方法的对象需要由后台线程调用终结器调用,并且在这种情况发生之前无法清理它们。如果这些任务很短,并且您没有丢弃其中的许多任务,那么一切都很好。但是,如果您要创建大量这些对象和/或它们的终结器需要很长时间,则要终结的对象队列会增加。这个队列有可能会

java - 为什么 Spring 框架叫 "non-intrusive"?

Spring框架是非侵入性的。你能详细说明一下吗?谢谢你:) 最佳答案 在这里,“非侵入式”意味着您的应用程序代码不需要直接依赖于Spring框架。任何可以注入(inject)适当依赖项的东西(理论上)都可以正常工作。 关于java-为什么Spring框架叫"non-intrusive"?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3068872/

java - Spring 4.1.0.RELEASE 和 Hibernate 4.3.6.Final 的依赖关系问题

我想用Spring和Hibernate(和Maven)构建一个RESTful服务。我首先使用了Spring4.0.3版本,一切正常。但我想使用最新版本4.1.0并相应地更改了我的pom.xml。但是然后我在启动时遇到错误。你能说出pom.xml应该是什么样子吗?使用spring创建RESTful服务的最佳方法是什么?我找到了一个使用spring-data-rest-webmvc的示例,我正在使用它。有没有更好的办法?这是错误代码:AMorg.apache.catalina.core.StandardContextloadOnStartupSchwerwiegend:Servlet/sp

java - Spring io @Autowired : The blank final field may not have been initialized

我认为这是一个非常基本的问题-关于此错误有多种问题,但前5个结果中没有一个具有Spring的细微差别。我有一个在Spring编写的REST-fulwebapp的开始。我正在尝试将其连接到数据库。我有一个名为Workspace的实体,我正在尝试使用bean的spring注入(inject)(正确的术语?)来保存工作区实体的实例packagecom.parrit;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.util.Assert;importorg.spring

dart - Flutter 中的 final/const 热潮是怎么回事?

Java有final和Dart,但据我所知,大多数Java人一直避免使用它,因为它会降低代码的可读性。例如,final一直用在class常量如publicstaticfinalint中,但大多数人避免在方法变量中使用它,因为它只是被许多开发人员视为“过度的代码正确性”,添加到样板代码中。C++也有const并且它可能会为之疯狂:char**const*constx//declarexasconstpointertoconstpointertopointertochar现在我开始学习Flutter,我看到final和const到处都是。这些真的有必要吗,就像他们说的那样:Fieldsin