java抽象类中私有属性初始化之后与预期结果不一致

问题描述

java抽象类中私有属性初始化之后与预期结果不一致

背景是这样的,项目使用的是Spring MVC类与类之间是通过@Autowired注解进行
注入的,我有一个Email的抽象类

 public abstract class Mail
 {
    protected boolean isEmailContentValid = true;

 }

然后有多个子类机型了这个Email抽象类,比如AEmail extends Mail

public class MailFactory
{
    @Autowired
    AEMail aEMail;
}

在MailFactory中,通过aEMail访问其父类的属性isEmailContentValid,
竟然是false的,一直想不通是为什么,我已经在父类Email中显示初始化
了isEmailContentValid=true,为什么初始化之后确实false的?

解决方案

但是我写了一个main方法进行测试,测试结果却跟逾期的结果是一样的
输出的isEmailContentValid为true,难道是@Autowired注入的问题吗?我不解!!!

解决方案二:

那要看你自动注入的类型是否初始化过这个属性呢?

时间: 2024-11-08 20:24:20

java抽象类中私有属性初始化之后与预期结果不一致的相关文章

gradle打包android程序时,如何修改java文件中的属性值

问题描述 gradle打包android程序时,如何修改java文件中的属性值 工程有个文件例如1.java文件:其中有个public final static String URL = "/www.baidu.com"; 现在的问题是如何在用gradle打包的时候可以更换1.java文件中的URL? ant打包就可以写不同的build.xml,在build.xml中更换URL的字符串,在利用ant构建的时候通过编译不同的build.xml来达到更换URL的目的. 现在不知道gradl

java 类-Java 类中的属性存储问题

问题描述 Java 类中的属性存储问题 Java中的方法存储在全局代码区之中,那么类中的属性存储在哪里呢?(父子类中同名的方法会被辅写,但是同名的属性却毫无影响?) 解决方案 父类属性可以继承,但不可以覆盖的.java中属性及类的定义信息都会被放在方法区中 解决方案二: Java中的存储问题关于java中的存储问题java继承 父类子类方法调用问题 属性和静态方法是没有多态的 解决方案三: java中的变量存在栈中 解决方案四: 变量和属性都是存储在栈中,,对象都是存储在堆中所以对象的属性重名是

Java Thread中的属性和方法

手撸一次,加深印象,立此存照. ThreadB package demo.thread; public class ThreadB implements Runnable { public void run() { try { Thread.sleep(5000L); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("This is thread B."); Thread curT

如何在JavaScript中实现私有属性的写类方式(一)_javascript技巧

之前讨论过JavaScript中的写类方式.但没有讨论私有的实现.这篇看下. 我们知道JS中私有属性的实现本质就是 var + closure.如下 复制代码 代码如下: function Person(n, a){     // public     this.name = n;     // private     var age = a;     this.getName = function(){         return this.name;     }     this.getA

如何在JavaScript中实现私有属性的写类方式(二)_javascript技巧

上一篇写了个工具函数$class,这篇再完善以下.实现以下功能 1,继承 2,子类继承父类时,不继承父类的私有属性 复制代码 代码如下: /**  * @param {String} className  * @param {String/Function} superCls  * @param {Function} classImp  */function $class(className, superCls, classImp){     if(superCls === '') superC

class-在VC#里,接口不能定义属性么?只有抽象类才能定义属性?

问题描述 在VC#里,接口不能定义属性么?只有抽象类才能定义属性? interface MyInterface { public int XueHao { get; set; } } 解决方案 也可以,但是要去掉public interface MyInterface { int XueHao { get; set; } } 解决方案二: JAVA接口中的属性定义 解决方案三: 接口可以定义属性,但是接口中的方法和属性不能有访问权限修饰符,所以你应该去掉public

java-Java抽象类中的非抽象方法的方法体为空,子类也没有头给予实现,但却被调用了是什么意思

问题描述 Java抽象类中的非抽象方法的方法体为空,子类也没有头给予实现,但却被调用了是什么意思 读源码的时候关键地方卡住了,在一个方法的结尾把数据作为参数调用了一个抽象类的方法,这个方法不是抽象方法,方法体也是空的,这个抽象类的子类只有一个,而且也没有实现这个方法,那这些数据到底了什么地方呢? 解决方案 实现方法在子类中,多态的概念,父类有这个方法(不是abstract的),所以要写一个空方法,具体实现由子类处理 解决方案二: 子类继承了父类, 不管是否重写父类的方法,都可以调用父类的方法吧

java private私有属性怎么在子类中访问

问题描述 java private私有属性怎么在子类中访问 class TianTi { private double tiji; private double zhiliang; public TianTi(){} public TianTi(double tiji,double zhiliang){ this.tiji=tiji; this.zhiliang=zhiliang; } public void setTiji(double tiji) { this.tiji=tiji; } pu

java private-java 一个类的对象访问私有属性的问题

问题描述 java 一个类的对象访问私有属性的问题 public class ModifierTest1 { public static void main( String[] args ) { A a = new A(); //System.out.println(a.s); a.f(); } } class A { private int i; private String s; public A() { i = 123; s = "hello"; } public void f(