草庐IT

non-final

全部标签

java - 内部类非final变量java

我需要更改内部类中的变量,但我遇到了臭名昭著的“无法引用在不同方法中定义的内部类中的非最终变量”错误。voidonStart(){bt.setOnClickListener(newView.OnClickListener(){publicvoidonClick(Viewv){intq=i;}});}我很快创建了一个包含所有我想要更改的内容的类,并在内部类之外创建了该类的最终版本classtemp{intq;}voidonStart(){finaltempx=newtemp();bt.setOnClickListener(newView.OnClickListener(){publicv

java - @JsonInclude(Include.NON_NULL) 不工作/ jackson 序列化空值

我已经在类/pojo上放置了注释并配置了映射器,但它仍然序列化null值我正在使用Hibernate4.3.7Final和Jackson2.4.4。这些集合是延迟加载Pojo:删除了getter和setter@JsonInclude(Include.NON_NULL)@Entity@TablepublicclassSchool{@Id@GeneratedValueprivateintid;@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.LAZY)privateListstudents;@OneToMany(cascade=Casca

Java 警告 : Varargs method could cause heap pollution from non-reifiable varargs parameter

我在JDK1.8上使用IntelliJIDEA和javac。我有以下代码:classTest{@SafeVarargsfinalvoidvarargsMethod(Collection...varargs){arrayMethod(varargs);}voidarrayMethod(Collection[]args){}}IntelliJIDEA不会高亮上述代码中的任何内容作为警告。但是,在编译时,“消息”View的“制作”选项卡中会出现以下行:Warning:(L,C)java:Varargsmethodcouldcauseheappollutionfromnon-reifiable

java - 为什么? "Always declare user defined exceptions as final"

我使用Java源代码分析器分析了我正在处理的代码。其中一条警告是“始终将用户定义的异常声明为最终异常”。还有许多其他没有多大意义的警告,但这个警告让我有点困惑。我正在开发一个框架,我有一个根通用异常(比如FrameworkGenericException),对于其他异常,我只是从根异常中派生它们。所以我有一个框架的异常层次结构。我可能会扩展层次结构,但我认为这个警告告诉我不要有这样的层次结构,而是单独定义它们。那么我应该走哪条路,你有什么意见? 最佳答案 这可能是他们的标准做法:如果类不应该被继承,则将类声明为final,而且他们可

java - "Syntax error, insert "Finally"to complete TryStatement"是什么原因

我正在使用eclipse创建一个android应用程序,该应用程序获取手机上所有当前显示的应用程序的列表,但我收到一个我以前从未见过的错误。我的代码看起来是正确的,但在其中一个“}”括号中出现错误“语法错误,插入“最后”以完成TryStatement”,有人知道如何解决此错误吗?谢谢。 最佳答案 您需要有一个“catch”子句或一个“finally”来伴随您的尝试:try{//...somethingdangerous...}catch(IOExceptione){//...handleerrors...}finally{//...

Java `final` 类和模拟

这个问题在这里已经有了答案:Howtomockafinalclasswithmockito(28个答案)关闭12个月前。我正在开发一款编程游戏,玩家可以访问抽象类并扩展它来控制机器人的行为。因为它是一个编程游戏,所以我正在努力保护我的游戏基础设施,这样玩家就不会弄乱游戏,而不仅仅是我给他们的类(class);为此,我将大部分类(class)设为final,但现在我无法在单元测试中模拟它们(mockito+testNG)。所以我想知道,我该如何解决这个问题?有没有办法让类非最终测试,然后以某种方式在构建周期的后期自动“final-ize”它们(我使用maven以防它与答案)。我不想添加另

java - 为什么我们允许在 java 中有一个 final main 方法?

谁能告诉我在java中将main方法设置为final的用法。虽然这在java中是允许的publicstaticfinalvoidmain(String[]args){}我看不出将其设为最终版本有任何用处。反正它是静态的,所以我们不能覆盖它。 最佳答案 将final添加到静态方法中实际上可以有所作为。考虑以下代码:classA{publicstaticvoidmain(String[]args){System.out.println("A");}}classBextendsA{publicstaticvoidmain(String[]

java - ReentrantReadWriteLock的 "non-fair"模式怎么理解?

ReentrantReadWriteLock有公平和非公平(默认)模式,但是文档太难理解了。我怎么理解呢?如果有一些代码示例来演示它,那就太好了。更新如果我有一个写线程和很多读线程,哪种模式更好用?如果我使用非公平模式,写线程是否有可能获得锁的机会很小? 最佳答案 非公平是指当锁准备被新线程获取时,该锁不保证谁获取锁的公平性(假设有多个线程请求锁当时)。换句话说,可以想象一个线程可能会一直处于饥饿状态,因为其他线程总是设法任意获取锁而不是它。公平模式更像是先到先得,其中保证线程在某种程度上公平,它们将以公平的方式获得锁(例如,在开始

java - GSON 是否应该被声明为 static final?

我在代码中使用JavaCallableFuture。下面是我的主要代码,它使用了future和callables-下面是我的主要代码,它使用了future和callables-publicclassTimeoutThread{publicstaticvoidmain(String[]args)throwsException{ExecutorServiceexecutor=Executors.newFixedThreadPool(5);Futurefuture=executor.submit(newTask());try{System.out.println(future.get(3,T

java - ORA-24816 : Expanded non LONG bind data supplied after actual LONG or LOB column

我在Hibernate中更新表时出现以下异常ORA-24816:在实际LONG或LOB列之后提供的扩展非LONG绑定(bind)数据我也提取了sql查询,看起来像Updatetable_namesetcolumnName(LOB)=value,colmun2(Stringwith4000)=valuewhereid=?;实体类classTest{@LobprivateStringerrorText;@Column(length=4000)privateStringtext;}请帮帮我,这是哪里出了问题谢谢拉维·库马尔 最佳答案 运行