草庐IT

new_field

全部标签

java - 什么是 java.io.IOException : invalid header field?

当我尝试运行以下命令时:jarcvfmmyjar.jarmanifest.txt*.class我得到以下异常:java.io.IOException:invalidheaderfieldatjava.util.jar.Attributes.read(Attributes.java:410)atjava.util.jar.Manifest.read(Manifest.java:199)atjava.util.jar.Manifest.(Manifest.java:69)atsun.tools.jar.Main.run(Main.java:171)atsun.tools.jar.Main.

java - 为什么@Mock 没有 "field is never assigned"警告

如果您在测试类中声明私有(private)字段:privateFoofoo;它被使用但从未分配,当我将鼠标悬停在声明上时,IntelliJIDEA(可能还有其他IDE)会显示警告,并将其呈现为灰色从未分配私有(private)字段“foo”但是如果我使用Mockito并像这样注释字段:@MockprivateFoofoo;警告消失并以紫色呈现该字段以指示它已分配。IDE如何知道@Mock意味着什么?我查看了Mockito源代码,注释定义上似乎没有任何内容,而且我的IDE没有Mockito插件。我正在编写一个类似于Mockito的库,带有等效的注释,我很想知道如何让IDE删除警告。(我不

JDK9或者以上版本出现Unable to make field private final byte[] java.lang.String.value accessible异常

1.原因        这个问题是由于Java9中的模块化导致的。为了提高Java的安全性,Java9引入了模块系统,该系统可以控制不同模块之间的访问权限。模块系统将Java分成了若干个可以独立部署和运行的模块,使得Java应用可以更快地启动并更好地利用硬件资源。2.解决方案①编辑配置②编辑VMoptions(如果没有使用快捷键alt+v)③配置内容--add-opensjava.base/java.lang=ALL-UNNAMED--add-opensjava.base/java.lang.reflect=ALL-UNNAMED--add-opensjava.base/java.lang.i

java - 如何为 Eclipse 创建自定义 'new class wizard'?

我想创建一个功能(为我自己),其中点击一个按钮(或者说触发任何事件或任何可以触发我的程序的东西),将显示一个弹出窗口,询问类的名称,对象它还有更多的东西。然后按确定,它将创建一个具有预定义方法框架的java文件,继承已知接口(interface)和...那么,基本上该怎么做?我是否需要为eclipse创建一个插件,或者在eclipse中有其他东西。PS请更改标题。我想不出更好的了。 最佳答案 正如其他人所说,您想创建一个向导,然后您想要扩充新建类向导,它正在做与您想要的类似的事情(但默认向导不允许您添加字段和自定义方法).要创建向导

java - Scanner input = new Scanner(System.in) 到底是什么意思?

Scannerinput=newScanner(System.in);你能详细解释一下上面的代码一步一步做了什么吗?我真的不明白它是如何工作的以及它如何链接到我以后能够做这个声明:inti=input.nextInt() 最佳答案 好吧,让我们对Scanner做一些简单的解释。类。这是一个标准的Oracle类,您可以通过调用importjava.util.Scanner使用它。那么让我们做一个类的基本示例:classScanner{InputStreamsource;Scanner(InputStreamsrc){this.sour

java - Java的field.setAccessible(true)在什么情况下会失效?

我有这样一种情况,用户的代码在反射访问的字段上抛出IllegalAccessException。在访问该字段之前,将调用setAccessible(true)。所以,在我看来,这种方法正在默默地失败。在什么情况下会发生这种情况?这可能与安全经理有关吗?这是导致异常的代码片段:privatestaticFieldlevelField;publicintgetLevel(){try{if(levelField==null){levelField=MessageInfo.class.getDeclaredField("level");levelField.setAccessible(true

java - 泛型和通配符 : Java likes "new Foo<Bar<?>>"

好的,所以Java不允许以下内容:Foohello=newFoo();这是有道理的——毕竟,如果您只是想装箱/拆箱所有东西,泛型有什么意义呢?奇怪的是,Java确实允许这样做:Foo>howdy=newFoo>();诚然,这实际上完成了更多,但在某些时候,会有一个转换来获取Bar正在使用的任何内容。但是,如果Java可以接受一些特殊性,为什么它不允许这样做呢?:Foobonjour=newFoo();我问的唯一原因是我决定依赖“构造函数的类参数内的通配符”,并且非常想知道它背后的含义/意图。编辑:为了澄清我的问题,允许/禁止这些陈述的理由是什么?我知道“Java不允许在构造函数中使用通

java - ( hibernate ) java.sql.SQLException : Field 'xxxx' doesn't have a default value

Hibernate抛出以下异常:Causedby:java.sql.SQLException:Field'catVerb_id'doesn'thaveadefaultvalue人们说问题出在我的PK没有AUTO_INCREMENT语句,但是你可以看到我已经在我的数据库中完成了这个并且问题仍然存在。所以,我带来了我的类(class)和我的数据库实现。我认为我的问题出在测试类上......有人可以告诉我如何测试它吗?(是的,有些词是葡萄牙语,但您可以理解)。CategoriaVerbete@Entity@Table(name="verbete_categoria")publicclassC

java - 无效的 hibernate 警告? '@Access(AccessType.PROPERTY) on a field has no effect'

我有以下实体类用户:publicclassUserimplementsSerializable{@Column(length=10,name="user_type")@Access(AccessType.PROPERTY)privateStringuserTypeS;@TransientprivateUserTypeuserType;...publicvoidsetUserType(UserTypeuserType){this.userType=userType;this.userTypeS=this.userType.getType();}protectedvoidsetUserTy

java编译器奇怪: field declared in same class,但 "not visible"

eclipse编译器拒绝编译以下代码,指出字段s不可见。(IBM的AspectJ编译器也拒绝,声明“无法解析s”)这是为什么呢?publicclassTest{Strings;voidfoo(Objecto){Stringos=getClass().cast(o).s;}}Java语言规范指出:Otherwise,wesaythereisdefaultaccess,whichispermittedonlywhentheaccessoccursfromwithinthepackageinwhichthetypeisdeclared.按照我的理解,该字段是在同一个编译单元中声明和访问的,因