「java注解访问属性」java注解类使用

博主:adminadmin 2022-12-11 19:33:09 76

今天给各位分享java注解访问属性的知识,其中也会对java注解类使用进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java中一个注解可以在类上和属性上同时使用吗

有的注解只能在类上(比如@controller),有的可以在方法上(比如@requestMapping),有的在属性上(比如@value)。

注解的使用在什么地方主要是决定在@Targe这个元注解上作用:用于描述注解的使用范围(即:被描述的注解可以用在什么地方)

取值(ElementType)有:

1.CONSTRUCTOR:用于描述构造器

2.FIELD:用于描述域

3.LOCAL_VARIABLE:用于描述局部变量

4.METHOD:用于描述方法

5.PACKAGE:用于描述包

6.PARAMETER:用于描述参数

7.TYPE:用于描述类、接口(包括注解类型) 或enum声明

java中如何用String访问对象的属性

利用反射可以获得类的变量名,给你个例子

public class MyTools {

public static void setAllComponentsName(Object f) {

// 获取f对象对应类中的所有属性域

Field[] fields = f.getClass().getDeclaredFields();

for(int i = 0 , len = fields.length; i len; i++) {

// 对于每个属性,获取属性名

String varName = fields[i].getName();

try {

// 获取原来的访问控制权限

boolean accessFlag = fields[i].isAccessible();

// 修改访问控制权限

fields[i].setAccessible(true);

// 获取在对象f中属性fields[i]对应的对象中的变量

Object o = fields[i].get(f);

System.out.println("传入的对象中包含一个如下的变量:" + varName + " = " + o);

// 恢复访问控制权限

fields[i].setAccessible(accessFlag);

} catch (IllegalArgumentException ex) {

ex.printStackTrace();

} catch (IllegalAccessException ex) {

ex.printStackTrace();

}

}

}

public static void main(String[] args)

{

// 测试代码用来获取一个JLabel中声名的所有的属性名和其属性变量

setAllComponentsName(new JLabel("测试"));

}

}

使用java注解时不写属性名会给哪个属性赋值

如果注解只有一个属性,那么肯定是赋值给该属性。

如果注解有多个属性,而且前提是这多个属性都有默认值,那么你不写注解名赋值,会赋值给名字为“value”这属性。

如果注解有多个属性,其中有没有设置默认值的属性,那么当你不写属性名进行赋值的时候,是会报错的。

Java中一个类如何去访问另一个类的对象的属性数据?

这要看另一个类所在位置及类与属性的修饰符有关。

两类在同一包中时,且为非private的,可以用对象.属性的形式来访问。

不同包时,要用import导入该类,还要考虑修饰符的影响,缺省或用private修饰的属性是不可见的,即不能访问的。

当然,用private修饰的属性,可以提供公有的方法来访问它。

还是去找些资料吧,这些不太好说清。

Java 什么是注解及注解原理详细介绍

1、注解是针对Java编译器的说明。

可以给Java包、类型(类、接口、枚举)、构造器、方法、域、参数和局部变量进行注解。Java编译器可以根据指令来解释注解和放弃注解,或者将注解放到编译后的生成的class文件中,运行时可用。

2、注解和注解类型

注解类型是一种特殊的接口类型,注解是注解注解类型的一个实例。

注解类型也有名称和成员,注解中包含的信息采用键值对形式,可以有0个或多个。

3、Java中定义的一些注解:

@Override 告诉编译器这个方法要覆盖一个超类方法,防止程序员覆盖出错。

@Deprecated 这个标识方法或类(接口等类型)过期,警告用户不建议使用。

@SafeVarargs JDK7新增,避免可变参数在使用泛型化时候警告”执行时期无法具体确认参数类型“,当然,也可以用@SuppressWarnings来避免检查,显然后者的抑制的范围更大。

@SuppressWarnings(value={"unchecked"}) 抑制编译警告,应用于类型、构造器、方法、域、参数以及局部变量。 value是类型数组,有效取值为:

all, to suppress all warnings

boxing, to suppress warnings relative to boxing/unboxing operations

cast, to suppress warnings relative to cast operations

dep-ann, to suppress warnings relative to deprecated annotation

deprecation, to suppress warnings relative to deprecation

fallthrough, to suppress warnings relative to missing breaks in switch statements

finally, to suppress warnings relative to finally block that don't return

hiding, to suppress warnings relative to locals that hide variable

incomplete-switch, to suppress warnings relative to missing entries in a switch statement (enum case)

javadoc, to suppress warnings relative to javadoc warnings

nls, to suppress warnings relative to non-nls string literals

null, to suppress warnings relative to null analysis

rawtypes, to suppress warnings relative to usage of raw types

restriction, to suppress warnings relative to usage of discouraged or forbidden references

serial, to suppress warnings relative to missing serialVersionUID field for a serializable class

static-access, to suppress warnings relative to incorrect static access

static-method, to suppress warnings relative to methods that could be declared as static

super, to suppress warnings relative to overriding a method without super invocations

synthetic-access, to suppress warnings relative to unoptimized access from inner classes

unchecked, to suppress warnings relative to unchecked operations

unqualified-field-access, to suppress warnings relative to field access unqualified

unused, to suppress warnings relative to unused code and dead code

4、注解的定义

使用 @interface 关键字声明一个注解

public @interface MyAnnotation1

注解中可以定义属性

String name default “defval”;

value是注解中的特殊属性

注解中定义的属性如果名称为 value, 此属性在使用时可以省写属性名

例如,声明一个注解:

@Retention(RetentionPolicy.RUNTIME)

public @interface MyAnno1 {

String msg();

int value();

}

java注解访问属性的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java注解类使用、java注解访问属性的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-11,除非注明,否则均为首码项目网原创文章,转载请注明出处。