Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
field.setInt()及其注释-java_Java_Annotations_Field - Fatal编程技术网

field.setInt()及其注释-java

field.setInt()及其注释-java,java,annotations,field,Java,Annotations,Field,编辑: 好的,假设我有注释@X和@Y public class MyExampleClass{ @X @Y Integer myfield; } 我遇到的问题是当我打电话时 field.setInt(o, new Integer(65))); 我犯了一个错误 java.lang.IllegalArgumentException: Can not set java.lang.Integer field MyExampleClass.myfield to (int)65 以下是字段的初始化

编辑:

好的,假设我有注释
@X
@Y

public class MyExampleClass{
  @X @Y Integer myfield;
}
我遇到的问题是当我打电话时

field.setInt(o, new Integer(65)));
我犯了一个错误

java.lang.IllegalArgumentException: Can not set java.lang.Integer field MyExampleClass.myfield to (int)65
以下是字段的初始化方式:

Field field = o.getClass().getField(fieldname);
o
是一个
对象
参数。当我调用它时,我给它传递一个类型为
MyExampleClass
的对象,
fieldname
的值是
“myfield”

以下是堆栈跟踪:

java.lang.IllegalArgumentException: Can not set java.lang.Integer field MyExampleClass.myfield to (int)65
java.lang.IllegalArgumentException: Can not set java.lang.Integer field MyExampleClass.myfield to (int)65
        at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(
UnsafeFieldAccessorImpl.java:167)
        at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(
UnsafeFieldAccessorImpl.java:191)
        at sun.reflect.UnsafeObjectFieldAccessorImpl.setInt(UnsafeObjectFieldAcc
essorImpl.java:114)
        at java.lang.reflect.Field.setInt(Field.java:943)
        at MyCallingClass.get(MyCallingClass.java:111)
        at MyTester.main(MyTester.java:20)

对象没有注释。可以对字段、类、方法等(请参见
@Target
注释)进行注释,但注释对象的概念不存在。注释只是元数据。它们是常数


你所要求的是不可能的。

当我运行我的程序时,我得到了错误:
java.lang.IllegalArgumentException:无法将java.lang.Integer字段MyExampleClass.myfield设置为(int)56
如果注释没有问题,会是什么?只有当我使用setInt方法时才会发生这种情况。@user3475234请在您的问题中发布所有相关的详细信息。我不知道您在做什么来帮助您。@user3475234,请包括完整的堆栈跟踪。@user3475234似乎对于
setInt
,基础字段必须是基元类型
int
。尝试使用
set
。谢谢,将其更改为
set
有效。我想Java会在
int
Integer
之间进行自动转换,但它没有。谢谢