「java属性和属性值」java 设置属性值

博主:adminadmin 2022-12-05 09:09:09 75

本篇文章给大家谈谈java属性和属性值,以及java 设置属性值对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java 递归替换复杂对象属性值

本示例中又三个对象嵌套:

UserBO:复杂对象,其中一个属性是ListAddressBO或者MapAddressBO

AddressBO:其中一个属性是SubAddressBO

SubAddressBO:包含目标属性addrId,且是string类型,查找addrId的值

任务:UserBO是一个复杂对象,该对象中肯定存在目标属性addrId(String类型,递归方法只能找string类型的属性,找其他类型自行修改代码),只是不知道addrId在哪个子属性中,如果UserBO存在多个addrId属性,那么只遍历出遇到的第一个addrId的值即可。

注意:(本例子在遍历复杂对象时,如果找到第一个目标属性,则退出,不在继续遍历,后面bolg有遍历复杂对象所有属性的文章)

1、本示例提供了两种方法来获取复杂对象中指定属性的值,一种是利用递归,另一种是直接把复杂对象转换成json串,再截取。

  2、本示例对于复杂对象中不包含目标属性时,会返回空字符串。

  3、目标属性可以存在于自定义类、list、map、数组中

  4、复杂对象可以是复杂嵌套的BO/ListBO/MapObject,BO,目标属性存在于BO中

  5、对于复杂对象是这种嵌套格式(ListListBO/ListMapObject,BO/MapObject,ListBO)的没有做测试

————————————————

版权声明:本文为CSDN博主「一路奔跑1314」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:

java 遍历 类属性的属性值

用反射,代码你可以参考下面的:

public static void testReflect(Object model) throws NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException{

Field[] field = model.getClass().getDeclaredFields(); //获取实体类的所有属性,返回Field数组

for(int j=0 ; jfield.length ; j++){ //遍历所有属性

String name = field[j].getName(); //获取属性的名字

System.out.println("attribute name:"+name);

String type = field[j].getGenericType().toString(); //获取属性的类型

if(type.equals("class java.lang.String")){ //如果type是类类型,则前面包含"class ",后面跟类名

Method m = model.getClass().getMethod("get" + name.substring(0,1).toUpperCase() + name.substring(1) );

String value = (String) m.invoke(model); //调用getter方法获取属性值

if(value != null){

System.out.println("attribute value:"+value);

}

}

if(type.equals("class java.lang.Integer")){

Method m = model.getClass().getMethod("get" + name.substring(0,1).toUpperCase() + name.substring(1) );

Integer value = (Integer) m.invoke(model);

if(value != null){

System.out.println("attribute value:"+value);

}

}

if(type.equals("class java.lang.Short")){

Method m = model.getClass().getMethod("get" + name.substring(0,1).toUpperCase() + name.substring(1) );

Short value = (Short) m.invoke(model);

if(value != null){

System.out.println("attribute value:"+value); }

}

if(type.equals("class java.lang.Double")){

Method m = model.getClass().getMethod("get" + name.substring(0,1).toUpperCase() + name.substring(1) );

Double value = (Double) m.invoke(model);

if(value != null){

System.out.println("attribute value:"+value);

}

}

if(type.equals("class java.lang.Boolean")){

Method m = model.getClass().getMethod("get"+name);

Boolean value = (Boolean) m.invoke(model);

if(value != null){

System.out.println("attribute value:"+value);

}

}

if(type.equals("class java.util.Date")){

Method m = model.getClass().getMethod("get"+name);

Date value = (Date) m.invoke(model);

if(value != null){

System.out.println("attribute value:"+value.toLocaleString());

}

}

}

java 传过来一个对象,如何得到这个对象的所有属性值?

1、过去某个类的某个属性:

2,可以通过对象调用其属性:

3,创建对象 :类名  对象名 = new 类名();

4,调用属性:对象名.属性

5,获取某个对象的所有属性

6,数组类型[]  数组名  = 对象名.getClass().getDeclaredFields();

7,使用反射

public static void main(String[] args) {

Model model = new Model();

Field fd = new Field();

fd.getField(model);

}

private void getField(Object model) {

java.lang.reflect.Field[] fields = model.getClass().getDeclaredFields();

for(java.lang.reflect.Field f:fields){

System.out.println(f.getName());

}

}

java如果获取一个对象中List下的属性和值

Column column=excel.sheet.columns.get(int index);

column.getXXXXXXXXXXXXXX

excel也是一个List对象,list里面包括sheet对象,还有columns对象,columns是个List数组

java 类的属性值为什么不能直接修改

如果你把属性设为 public 就可以直接修改呀。,用方法是因为属性是私有的,通过一个方法封装了它

java 中引用值和属性值(实际值) 提问

解释如下

    public static void main(String[] args) {

        

        // 首先要明白一个问题,Integer为对象

        // 使用 == (双等于)的比较为对象引用地址的比较,而不是对象所代表值的比较

        

        // 当 Integer 的对象值在 -128~127 之间时,多个对象会引用同一个数据,

        // 即引用地址是相同的,而不在这个范围内的值则不会

        

        // 比较范围内的值 -128~127

        Integer a1 = 100;

        Integer b1 = 100;

        System.out.println(a1==b1);   // true

        

        // 比较范围外的值

        Integer a2 = 200;

        Integer b2 = 200;

        System.out.println(a2==b2);   // false  不在范围内

        

        // new 对象比较

        Integer a3 = new Integer(100);

        Integer b3 = new Integer(100);

        System.out.println(a3==b3);  // false  使用的为new关键字

        

        // 可以看出,如果是自动装包 即:Integer a = 3;

        // Java在 -128~127 这个数值之间会自动引用同一个地址

        // 而使用 new 关键字创建的对象则不会进行

        

        

        // 如果要比较值的话可以这样

        // 1. 使用equals方法

        System.out.println(a2.equals(b2));

        

        // 2. 使用 intValue() 方法

        System.out.println(a2.intValue()==b2.intValue()); 

        

    }

关于java属性和属性值和java 设置属性值的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

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